2006年12月10日 星期日

迴圈的整理

巢狀 for 迴圈
//主要的3種迴圈架構
//while (判斷) { … }
//do { … } while{判斷};
//for (起始值;判斷;數值遞增) {}
int r = PPJUtil.getInt("Lines");
int t = PPJUtil.getInt("Times");

for (int c=1;c<=r ;c++ ) { for (int c2=1; c2<=t; c2++) { System.out.print("*");
}
System.out.println();
}
把 while 流程改寫為 for 流程
這是一段 while 迴圈的區塊
int c=1;
int c2=2;
while (c<=10) {
System.out.println(c+"-"+c2);
c++;
c2+=2;
}
可以這樣寫
//兩個變數同時增加
for
(int c=1,c2=2; c<=10 ; c++,c2=c2+2) {
System.out.println(c+"-"+c2);
}
中斷或繼續
迴圈中使用 break 會立刻離開迴圈;
迴圈中使用 continue 會掠過迴圈後面的程式,
但繼續執行
//利用無窮迴圈持續執行
while (true) { //無窮迴圈
char g = PPJUtil.getChar("性別");
int w = PPJUtil.getInt("體重");
int h = PPJUtil.getInt("身高");
int sw = 0;
//性別輸入Q就離開迴圈
if (g =='Q') {
break;
}
//設定標準體重 (略)
//判斷超過標準體重判斷的資料
if (sw == 0) {
System
.out.println("Error");
continue
; //發生錯誤了!利用 continue 略過後續程式
}
//else {
System.out.println("體重:"+w);
System.out.println("性別:"+g);
System.out.println("身高:"+h);
System.out.println("標準:"+sw);
// }
System.out.println(w>sw ? "太重了!" : "很好,請保持!");
}
//迴圈又再度回到 while 處繼續持行

這樣就可以持續的輸入並判斷資料。
此外,break 還可以搭配 label 使用。

沒有留言: