阵列与回圈

上传人:小** 文档编号:57371469 上传时间:2018-10-21 格式:PPT 页数:45 大小:549KB
返回 下载 相关 举报
阵列与回圈_第1页
第1页 / 共45页
阵列与回圈_第2页
第2页 / 共45页
阵列与回圈_第3页
第3页 / 共45页
阵列与回圈_第4页
第4页 / 共45页
阵列与回圈_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《阵列与回圈》由会员分享,可在线阅读,更多相关《阵列与回圈(45页珍藏版)》请在金锄头文库上搜索。

1、陣列與迴圈,內 容 大 綱,陣列的宣告與建構 陣列元素初始值設定與存取 多維陣列 for迴圈敘述 巢狀迴圈 while迴圈敘述 do迴圈敘述,陣列的宣告與建構(1/3),陣列(array)變數可以使用有順序的方式儲存任意個數的相同型別(type)或同一類別(class)的資料,其中每一個儲存在陣列變數中的資料稱為元素(element)。 陣列變數的宣告與一般的變數的宣告非常類似,一般變數的宣告再加上一組中刮號配對就可以構成陣列變數宣告,最簡單的陣列變數宣告語法如下: 型別 變數識別名稱; 或 型別 變數識別名稱; 在Java語言中,實際上是將陣列視為類別來處理。因此,在上述的兩種陣列變數宣告法

2、中,以第一種方法比較好,因為它較能表達陣列是一種類別的概念(我們可以將型別加上中括號視為是一種能處理陣列資料的特殊類別),陣列的宣告與建構(2/3),我們首先說明陣列的建構(construction),陣列的建構指的是在記憶體中配置一段空間來儲存陣列的元素,既然陣列是一種類別,那麼陣列變數的建構就要使用與類別相同的方式,也就是使用new運算子來建構,其使用法如下所示:變數名稱new 型別陣列大小; 下的程式碼片段中宣告一個可以儲存12個int型別資料的陣列變數陣列1及一個可以儲存7個String類別資料的陣列變數陣列2:int 陣列1;String 陣列2;陣列1 = new int12;陣列

3、2 = new String7;,陣列的宣告與建構(3/3),我們也可以採取較精簡的寫法,如下:int 陣列1 = new int12;String 陣列2 = new String7;,陣列元素初始值設定與存取(1/3),使用new運算子來建構陣列變數時,陣列中的每個元素都會設定成其所屬型別的預設初始值,如int型別之資料初始值為0,boolean型別的初始值為false等等,請參考表4-1以查閱相關的型別初始值設定。 若讀者要將陣列中元素的初始值設定為預設初始值以外的值,則可以將元素初始值置於大括號,並且用逗點隔開,其寫法如下:型別 變數識別名稱=元素0初始值,元素1初始值,; 讀者可以發

4、現我們在大括號中第一個寫的是元素0初始值,這是因為在Java語言中陣列中的元素是使用元素編號來區別的,而Java語言中元素編號是從0開始的,陣列元素初始值設定與存取(2/3),以下兩個實例使用直接列出初始值的寫法宣告陣列:int 陣列1=31,29,31,30,31,30,31,31,30,31,30,31;String 陣列2= “星期一”,“星期二”,“星期三”,“星期四”,“星期 五”,“星期六”,“星期天”; 這種採用將初始值直接置於大括號中的寫法就不用指定陣列大小(元素個數)了,Java編譯程式會自動計算初始值的個數來決定陣列大小。 陣列元素存取的方式相當容易,只要在陣列變數名稱之後

5、加上中括號配對,並於中括號配對中指出元素編號即可System.out.println(陣列10);System.out.println(陣列111);,陣列元素初始值設定與存取(3/3),陣列實際上被當作類別來處理,而所有的陣列變數都可以使用一個唯讀變數length,這個變數存放陣列的長度(即陣列元素個數),如同類別的用法 陣列變數識別名稱.length 來取得陣列的長度,多維陣列(1/2),陣列的元素也可以是另一個陣列,我們稱之為陣列的陣列(array of array)或多維陣列(multi-dimension array) 型別 變數識別名稱; 或 型別 變數識別名稱; 多維陣列也是使用

6、new運算子來建構,例如以下敘述:int 二維陣列=new int34; 宣告一個2維陣列變數二維陣列,此變數第一維度有3個元素,第二維度有4個元素,2維陣列變的第一維度數又稱為列(row),第二維度數又稱為欄(column),因此,變數二維陣列是一個3列4行的維度為2的陣列變數,其儲存資料元素的方式如圖4-1所示,多維陣列(2/2),要存取二維陣列中的元素時,只要利用二個中括號刮起元素編號即可;例如:二維陣列23 所謂巢狀(nesting)大括號,指的是一組配對大括號中又有另一組配對大括號出現,多維陣列可以透過巢狀(nesting)的大括號來設定初始值 Example:int 二維陣列= 0

7、,0,0,0,1,1,1,1,2,2,2,2 ; Example:此例子可以利用變數陣列1中的元素值來印出公元2000年每個月份的天數,for迴圈敘述(1/10),for迴圈敘述的語法如下:for(初始值設定敘述;條件式;遞增敘述) 迴圈敘述區塊 for迴圈敘述的流程圖 我們先舉一個能夠讓變數i由0,1,變動到11的實例,然後以此實例來解釋迴圈敘述的語法,此實例如下所示:for (i=0;i12;i+) System.out.println(陣列1i);,for迴圈敘述(2/10),上列的迴圈敘述區塊中僅有一個敘述,故此迴圈敘述區塊的左右大括號可以省略,因此,上列的迴圈敘述也可以寫成:for

8、(i=0;i12;i+)System.out.println(陣列1i); 上列的迴圈敘述中初始值設定敘述為 i=0; 條件式為 i12; 遞增敘述為i+;,for迴圈敘述(3/10),此迴圈敘述會執行以下步驟: 步驟1. 執行初始值設定敘述,本例中的初始值設定敘述為 i=0;此敘述設定變數i的初始值為0。 步驟2. 檢查條件式 i5 (8是否大於5)8=5 (8是否大於或等於5)58 (5是否大於8),for迴圈敘述(6/10),我們也可以用邏輯且(AND) 、邏輯或(OR)來形成複合的(85) & (35) (是否8大於5而且3大於5)(85) | (35) (是否8大於5或者3大於5)

9、我們也可以使用邏輯反相(NOT)來反轉條件式的值由true為false或由false為true!(58) (5大於8是否不成立)!(85) (8大於5是否不成立),for迴圈敘述(7/10),如同算術運算式的運算子一樣,我們也是分群列出條件運算子,最先列出的運算子有最高的運算優先順序,例如x5 | y=10與(x5) | ( (y=10) ) 因為與=的優先順序高於|及&,所以x5與y=10會先行運算;而&之的優先順序又高於|,因此(y=10)會先進行運算,而最後才會執行(x5) | ( (y=10) )運算。,for迴圈敘述(8/10),Example /檔名:每月天數.java /說明:此

10、程式可顯示出公元2000年各月份天數public class 每月天數public static void main(String 變數)int 陣列1=31,29,31,30,31,30,31,31,30,31,30,31;System.out.println(“公元2000年各月份之天數表“);for (int i=0;i陣列1.length;+i)System.out.println(i+1)+“月份天數為“+陣列1i+“天“); /方法:main() 定義區塊結束 /類別:每月天數 定義區塊結束 程式執行結果,for迴圈敘述(9/10),Example /檔名:連和連積分數連和.jav

11、a /說明:輸入一整數n,並計算1+2+n(連和),及1*2*n(連積)/及(1/1)+(1/2)+(1/n)(分數連和)之值 import javax.swing.JOptionPane; public class 連和連積分數連和 public static void main(String 參數) int n; /用於儲存使用者輸入之整數int 連和=0; /用於儲存1+2+之累加值double 連積=1.0; /用於儲存1*2*之累乘值double 分數連和=0.0;/用於儲存1(1/1)+(1/2)+之累加值String 輸入字串=JOptionPane.showInputDialo

12、g(“請輸入一正整 數”);n=Integer.parseInt(輸入字串);,for迴圈敘述(10/10),for(int i=1;i=n;+i) /for迴圈敘述中i之值為1,2,n連和+=i; /將i之值累加至連和中連積*=i; /將i之值累乘至連積中分數連和+=(1.0/i); /將(1/i)之值累加至分數連和中String 顯示字串=”你輸入的正整數為”+n;顯示字串 = 顯示字串+”n1到”+n+”的連和為”+連和;顯示字串 = 顯示字串+”n1到”+n+”的連積為”+連積;顯示字串 = 顯示字串+”n1到”+n+”的分數連和為”+分數連和;JOptionPane.showMess

13、ageDialog(null,顯示字串);System.exit(0); /方法:main() 定義區塊結束 /類別:連和連積分數連和 定義區塊結束 程式執行結果,巢狀迴圈(1/2),以下我們介紹巢狀迴圈(nesting loop),所謂巢狀迴圈就是迴圈中還有迴圈(loop of loop)的用法,我們使用以下的實例來說明巢狀迴圈。,巢狀迴圈(2/2),巢狀迴圈程式碼for (int i=1;i=12;+i)for (int j=1;j10000,利用while敘述求n / 1+2+m20000,利用do敘述求mpublic class 累加總合超過10000及20000public static void main (String 參數)int i=0; /變數i用以紀錄目前將累加的整數int 連和=0; /變數連和用以紀錄目前已累加的總和while (連和=10000) 連和 += +i;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号