1 / 31

本章重點

陣列. 本章重點. 陣列宣告 一維陣列值存取 多維陣列值存取 陣列分類排序 數字排序 字母排序 陣列搜尋. 陣列 (Array). 為了能處理大量資料,「陣列 (Array) 」能將同性質的資料以陣列方式存放, 例如,可使用 Customer[ ] 形式來代表全體客戶名稱。 如果程式中有多個資料需要處理時,使用陣列絕對是最佳首選,不但可以省去冗長的變數宣告,而且節省版面設計空間。. 陣列宣告. 利用陣列來處理資料呢?有兩個步驟: 1. 宣告陣列方式:使用 [ ] 符號代表陣列 假如資料型別為整數 int , 陣列變數名稱為 x :

Download Presentation

本章重點

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 陣列

  2. 本章重點 • 陣列宣告 • 一維陣列值存取 • 多維陣列值存取 • 陣列分類排序 • 數字排序 • 字母排序 • 陣列搜尋

  3. 陣列 (Array) • 為了能處理大量資料,「陣列(Array)」能將同性質的資料以陣列方式存放, 例如,可使用Customer[ ]形式來代表全體客戶名稱。 • 如果程式中有多個資料需要處理時,使用陣列絕對是最佳首選,不但可以省去冗長的變數宣告,而且節省版面設計空間。

  4. 陣列宣告 • 利用陣列來處理資料呢?有兩個步驟: 1. 宣告陣列方式:使用 [ ] 符號代表陣列 假如資料型別為整數int, 陣列變數名稱為x: 有三種表示方式,不管您選擇何種方式宣告陣列,結果皆同。 • 方式1: int[ ] x; • 方式2: int [ ]x; • 方式3: int x[ ];

  5. 陣列宣告 2. 設定陣列空間:使用 new來配置空間 當宣告陣列之後,還必須要決定多少個空間給資料使用,亦即資料個數。宣告語法如下: • int x[ ]; • x = new int[資料個數]; • 或者,也可改為 • int x[ ] = new int[資料個數];

  6. 陣列宣告 • 至於陣列的個別元素又該如何表示?讓我們利用下列方式來得到答案: • 首先假想有5個空盒子,因為陣列的初始值為0 (注意,並不是從1開始喔!!),所以這5個的個別元素表示法則依次分別為x[0],x[1],x[2],x[3],x[4],代表著第一個的個別元素為x[0],第二個的個別元素為x[1],其他依此類推,如下圖:

  7. 一維陣列值存取 • 陣列宣告完成之後,接下來就要將資料值存放到每一個別元素中,而且每一個別元素都代表著個別獨立的資料值,例如,如果將資料值置放到x[0],這個資料值即代表著第一個的個別元素使用,與其他的個別元素就無關聯。

  8. 一維陣列值存取 • 以下是一維陣列的資料值表示法: • 也可將以上例子改寫成如下形式:

  9. 一維陣列值存取 • 瞭解了上述兩種形式陣列的資料值表示法,再來就是如何利用Java程式將陣列輸出各項資料值,因為陣列的初始值是從0起值,然後根據資料個數來判斷儲存空間,此方式有點類似「已知個數」情況下從初始值遞增至最大值之語法,故可使用「for」迴圈與陣列結合

  10. 範例檔: Ch5_1.java • class Ch5_1 • { • public static void main(String args[]) • { • int[] account=new int[5]; • account[0] = 1000; • account[1] = 6500; • account[2] = 4050; • account[3] = 1350; • account[4] = 2790; • for (int i=0; i<5; i++) • { • System.out.println("第 " + (i+1) + " 位客戶活儲帳號餘額有 " + account[i] + "元"); • } • } • }

  11. 輸出結果

  12. 可將範例Ch5_1.java改為如下程式碼 • class Ch5_2 • { • public static void main(String args[]) • { • int[ ] account = {1000, 6500, 4050, 1350, 2790}; • for (int i=0; i < account.length; i++) • { • System.out.println("第 " + (i+1) + " 位客戶活儲帳號餘額有 " + account[i] + "元"); • } • } • }

  13. 多維陣列值存取 • 先前所提的皆屬於一維陣列,如同一排的空盒子排成一列。如果有不同個體元素資料需要輸入,可能會需要好幾列的空間來存放,這就是所謂的「多維陣列」。

  14. 二維陣列的宣告方式 • 二維陣列的宣告方式 • 也可將二維陣列宣告方式改為

  15. 二維陣列的宣告方式 • 在陣列宣告中,您會看到有二個 [ ] [ ] 的符號,前面代表是列的數目,後者代表是欄的數目,例如,[2][5]表示形式如下所示:

  16. 陣列分類排序 • 如果有很多數據資料時,又希望能依照由小而大自動排列時,此時可利用Java的java.util類別的分類(sort)的功能來排序。要使用這個分類(sort)功能必須要匯入相關類別套件,參考語法如下: • import java.util.*;

  17. 數字排序 • 假設有五個數字依序分別為44, 55, 22, 11, 33,現在希望能將數字由小而大自動排列,如同11, 22, 33, 44, 55之排序,我們可以利用Arrays.sort( )方法來達到此需求,語法請參考下列之範例

  18. 範例檔: Ch5_6.java • import java.util.*; • class Ch5_6 • { • public static void main(String[ ] args) • { • int num[] = {44, 55, 22, 11, 33}; • System.out.println("排序前:"); • for(int i = 0; i < num.length; i++) • { • System.out.println(" " + num[i]); • } • System.out.println("\n排序後:"); • Arrays.sort(num); • for(int i = 0; i < num.length; i++) • { • System.out.println(" " + num[i]); • } • } • }

  19. 輸出結果

  20. 字母排序 • 除了數字排序外,當然也可以將字母做一排序,例如,現有五個名字分別為Paul, Kevin, Susan, Phil, Tiger,也可以使用Arrays.sort( )方法達到以字母排序的目的,語法請參考下列之範例:

  21. 範例檔: Ch5_7.java • import java.util.*; • class Ch5_7 • { • public static void main(String[] args) • { • String name[] = {"Paul", "Kevin", "Susan", "Phil", "Tiger"}; • System.out.println("排序前:"); • for(int i = 0; i < name.length; i++) • { • System.out.println(" " + name[i]); • } • System.out.println("\n排序後:"); • Arrays.sort(name); • for(int i = 0; i < name.length; i++) • { • System.out.println(" " + name[i]); • } • } • }

  22. 輸出結果

  23. 陣列搜尋 • 陣列還有一個最大的功用,就是能在眾多資料中搜尋特定資料,例如,我們可以輸入某人的姓名來查詢某人的email、電話、地址等等相關資料。

  24. 範例檔: Ch5_8.java • import java.io.*; • class Ch5_8 • { • public static void main(String args[]) throws IOException • { • String email[ ][ ]={ {"0","0"}, • {"Paul","paul@yahoo.com.tw"},{"Kevin","k123@yahoo.com.tw"}, • {"Susan","su1987@hotmail.com"},{"Tiger","twoods@aol.com"}, • {"Phil","pp0099@pchome.com.tw"},{"Tim","tim123@yahoo.com.tw"}, • {"Carle","ca55@hotmail.com"},{"Ricky","ry@yam.com"}}; • BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); • System.out.print("請輸入名字: "); • String name=br.readLine(); • for (int i=1;i<=9 ;i++) • { • if (name.compareToIgnoreCase(email[i][0])==0) • { • System.out.println(email[i][0] + " 的email為: " + email[i][1]); • break; • } • else • System.out.println("查無此人的email"); • break; • } • } • }

  25. 輸出結果 • 找到某人資料: 找不到資料

  26. 課堂綜合範例練習

  27. 課堂練習1:找出最大與最小值 • 此練習題是要從一個陣列中, int num[]={34, 22, 82, 59, 76, 71 }; 找出最大與最小值,參考下面範例程式碼

  28. 課堂練習2:綜合陣列練習 • 試求出下列各題: ( a ) 使用陣列方式將上述列印出 ( b ) 求出每一位平均分數及成績排名 ( c ) 求出每一科的平均分數

  29. 課堂練習2:綜合陣列練習 • 輸出結果畫面如下所示

  30. 課堂練習3:銷售業績比較 • 假設產品A單價為22元,產品B單價為19元,產品C單價 • 為28元,產品D單價為24元,產品E單價為15元,且每一個 • 銷售員分別在每項產品賣出不同的數量,請根據下列的畫面輸出結果,分別求出: • 每一個銷售員的銷售總金額 • 每項產品的銷售總金額 • 找出誰是最佳銷售員 • 那一項產品賣的金額最好

  31. The End

More Related