Java 程式設計(一) :第 七章 陣列 下一頁 |
第七章 陣列 7-1 陣列結構
7-1-1 一維陣列 結構 陣列(Array)是一群相同『資料型態』的變數整合而成的另一種變數,並使用一個共用的參考名稱。其中『資料型態』可以是一般基本資料型態(如 int、float、double...等),也可以是一個『物件』型態(如 String...等)。 如圖 7-1 所示(一維陣列結構),陣列 a 包含了 8 個相同資料型態(int)的變數,這些變數各自獨立的,也可分別儲存資料,之間並不相衝突;但為了使這些資料之間也某些連帶關係,利用相同的變數名稱(如 a),各自給予獨立的指標(a[i],i = 0, …, 7)。
圖 7-1 一維陣列結構 對資料整合與運用(如資料結構)而言,陣列是非常重要的資料型態,可用來描述許多真實環境的現象。本章先介紹一些陣列的基本觀念與運用。 7-1-2 一維陣列宣告 『一維陣列』(One dimension array)表示僅有一行或一列的資料結構,但一列陣列可能包含若干個行;一行陣列也可能包含多個列之結構,如圖 7-1 所示。一維陣列僅需要一個指標變數(如 i)來索引陣列中哪一個元素(如 a[i],i = 3)。Java 語言宣告陣列的基本語法說明如下: (A)陣列動態宣告: 其實在 Java 語言裡,無論哪一種基本資料型態,或以宣告完成的物件,它都是以物件的觀念來處理,尤其在陣列資料型態裡更是明顯。如同物件一樣,宣告某一陣列變數,只不過產生了資料型態架構,必須再經由 new 敘述才能在主記憶體裡取得變數空間。基本語法如下:
第一個敘述(如 int course[])功能是宣告某一變數(course)為整數(int)的陣列變數;第二個敘述(如 course = new int[20])功能是由主記憶體取得 20 個整數空間,並配置給 course 變數使用。此兩條敘述執行完畢後,則產生 course[0]、course[1]...等、course[19];需注意陣列指標是由 0 開始計算,如有 n 個元素,則最高指標是 n-1。 另外,系統也會自動產生 length 變數,紀錄該變數的長度如何,如 course = int[20],則 course.length = 20。上述範例亦可簡寫成 int[] course = new int[20],一行敘述句完成宣告。 (B)陣列宣告並給予初值 宣告陣列時可以給予初值,則表示由記憶體取得空間後立即存入初值數值,陣列的大小就如此被固定下來(length 變數內容),也不需再由 new 敘述來配置空間。語法格式如下:
上述執行後,會產生 5 個元素,分別是 course[0] = 89、course[1] = 90、course[2] = 60、course[3] = 70 與 course[4] = 80,以及 course.length = 5。吾人還是取用更多範例說明如下:
7-1-3 範例研討:印出股票歷史價 (A)程式功能:Ex7_1.java 吾人利用陣列 course[] = {78.8, 72.3, 61, 56, 87, 66.3, 74.5, 88, 76, 58}; 儲存某一支股票最近 10 個交易日的收盤價,請列印出其內容;期望操作介面如下:
(B)製作技巧研討: 陣列中每一個元素都是獨立變數,必須利用指標變數一個接一個取出再列印。本範例 course[] 包含了 10(= course.length)個元素,則利用指標 i = 0, 1, …, 9,分別索引每一元素 course[i] 的內容。譬如,當 count =0,則 course[0] = 78.8;count=1,則course[1] = 72.3,依此類推。因此,吾人可利用 for 迴圈,條件初始值為 i = 0、判斷條件 count < course.length、增減量為 i++。 (C)程式範例:
(D) 程式重點分析: (1) 第 5~6 行:『double course[] = { …}』。宣告 course 陣列變數為 double 資料型態,也立即給予初值。 (2) 第9~10 行:『for( ..; i<course.length; ..) System.out.printf("%.2f ", course[i];』。其中 length 變數表示元素的個數( 10),但陣列元素是由 0 開始計算,因此最後一個元素是 length -1。另外,列印格式是 "%.2f ",其表示印出有 2 位小數點的浮點格式(%.2f),後面再接兩個空白格。 7-1-4 範例研討:最近十天的平均價 (A)程式功能:Ex7_2.java 請修改 Ex7_1.java 程式,使其功能不但輸出最近 10 個交易日的收盤價,並計算出他的平均價如何。【利用陣列 course[] = {78.8, 72.3, 61, 56, 87, 66.3, 74.5, 88, 76, 58}; 儲存某一支股票最近 10 個交易日的收盤價】,期望操作介面如下:
(B)程式範例:
7-1-5 自我挑戰:最近十天的最高/最低價 (A)程式功能:PM7_1.java 請修改 Ex7_1.java 程式,使其功能不但輸出最近 10 個交易日的收盤價,並比較輸出其中最高與最低價格如何。【利用陣列 course[] = {78.8, 72.3, 61, 56, 87, 66.3, 74.5, 88, 76, 58}; 儲存某一支股票最近 10 個交易日的收盤價】,期望操作介面如下: 期望操作介面如下:
(B)程式設計技巧:(程式片段)
|
翻轉工作室:粘添壽
Java 程式設計(一) 含程式邏輯
翻轉電子書系列:
|