本文盡量用簡單的方式,說明Java程式語言的撰寫以及應用。
建議在看完,並理解之後,還是要去觀看教科書、參考書,才能完全理解。
迴圈 (loop) 是在特定程式區塊 (block) 中,重複執行相同的工作.
Java 中有兩種迴圈,一種是 while 迴圈 (while loop) ,另一種則是 for 迴圈 (for loop) ,兩種迴圈可以互相替代,端視自己喜歡用哪一種囉!我們先來看看 while 迴圈的寫法
迴圈 (loop)>while 迴圈 (while loop)
這個迴圈很常用在判斷物件是否有下一筆或上一筆資料,但也可以執行如for迴圈所做的事,底下直接用範例來說明。
用法:
while(判斷式為真)
{
敘述句
}
範例:
int a = 3;
while(a<3)//為true時才執行下面
{
System.out.print(a+”,”);
a++;
}
//答案:0,1,2
java 補習>迴圈 (loop)>for 迴圈 (for loop)
在Java中如果要進行重複性指令執行,可以使用for迴圈式,基本語法之一如下:
for(初始式; 執行結果必須是boolean的重複式; 重複式) {
陳述句;
}
for迴圈語法的圓括號中,初始式只執行一次,所以通常用來宣告或初始變數,如果是宣告變數,結束for迴圈後變數就會消失。第一個分號後則是每次執行迴圈本體前會執行一次,且必須是true或false的結果,true就會執行迴圈本體,false就會結束迴圈,第二個分號後,則是每次執行完迴圈本體後會執行一次。
實際來看個for迴圈範例,在文字模式下從1顯示到10:
package cc.openhome;
public class OneToTen {
public static void main(String[] args) {
for(int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
這個程式白話讀來,就是從i等於1,只要i小於等於10就執行迴圈本體(顯示i),然後遞增i,這是for迴圈的常見的應用方式。如果for本體只有一行陳述句,則{與}可以省略,不過為了可讀性與可維護性而言,現在建議是就算只有一行陳述句,也要撰寫{與}明確定義範圍。
在介紹for迴圈時,許多書籍或文件很喜歡用的範例就是顯示九九乘法表,這邊就用這個例子來示範:
package cc.openhome;
public class NineNineTable {
public static void main(String[] args) {
for(int j = 1; j < 10; j++) {
for(int i = 2; i < 10; i++) {
System.out.printf(“%d*%d=%2d “,i, j, i * j);
}
System.out.println();
}
}
}
事實上,for迴圈語法只是將三個複合陳述區塊寫在圓括號中而已,第一個陳述區塊只會執行一次,第二個陳述區塊專司判斷是否繼續下一個迴圈,而第三個陳述區塊只是一般的陳述句。
for圓括號中的每個陳述區塊是以分號;作區隔,而在一個陳述區塊中若想寫兩個以上的陳述句,則使用逗號,作區隔,有興趣的話,研究一下底下九九乘法表的寫法,只使用了一個for迴圈就可以完成九九乘法表列印,執行結果與上一個範例相同(就可讀性而言,並不建議這麼寫):
package cc.openhome;
public class NineNineTable2 {
public static void main(String[] args) {
for (int i = 2, j = 1; j < 10; i = (i==9)?((++j/j)+1):(i+1)) {
System.out.printf(“%d*%d=%2d%c”, i, j, i * j, (i==9 ? ‘\n’ : ‘ ‘));
}
}
}
for迴圈圓括號中第二個複合陳述區塊若沒有撰寫,預設就是true。所以偶而你看到有人如下撰寫的話,表示無窮迴圈:
for(;;) {
…
}
當for中包括一個if陳述時:
for(…) {
if(condMatched) {
…
}
}
由於Java是個自由格式語言,去掉第一個for迴圈的{與},並將if排版在for右邊,就會看來像是這樣:
for(…) if(condMatched) {
…
}
偶而你會看到有這種風格的寫法,讓程式閱讀看來流暢一些。
java 補習>迴圈 (loop)>迴圈中斷break
當執行迴圈時,合乎結束條件時,迴圈就算完成任務了,但如果中突有需要跳離時呢?這時候可以使用break這個關鍵字。
只需要在想要做中斷的地方輸入break ; 就會直接結束迴圈,並向下執行迴圈外的敘述句。
例子: //迴圈裡會印出0,1,2,3,4,5, for(int i = 0 ; i < 10;i++) { System.out.print(i+","); if(i==5)//當i==5時就先中斷這個迴圈了 break; } System.out.println("xxxxx");
答案:
0,1,2,3,4,5,xxxxx
java 補習>迴圈 (loop)>continue
接下來是 continue ,這個單字在英文的意思是繼續,不過在程式中的繼續是回到一開始再繼續往下。 簡單的例子:
int i; for(i=0;i<10;i++){ if(i==5) continue; System.out.println(i); //此為JAVA輸出語法,C語言請改用 printf("%d",i); }
這個簡單的範例中,若你實際執行的話…
「012346789」某A數著,然後說:「咦? 好像少了5呢!」
是的,這就是 continue 的功用,他不像 break 那樣霸道,直接打壞整個迴圈,而是跳過這次的迴圈再繼續執行。
facebook 查詢:
24 hours enquiry facebook channel :
https://www.facebook.com/itteacheritfreelance/?ref=aymt_homepage_panel
Leave a Reply