最近在機子上裝了jdk1.4.2,裝了編輯器eclipse3.0.1,用後感覺eclipse確實很好用,特別是參數提示功能。 網上的java資源也還不少,看了《thinking in java》中文版前幾章,記點問題與發現在這裡: 1. for迴圈的一個問題 for(int i=1, j=i+10 ; i<5; i++ , j=i*2) system.out.println("i="+i+" j="+j);運行結果: i=1 j=11 i=2 j=4 i=3 j=6 i=4 j=8 而改動一點後: for(int i=1, j=i+10; i<5; i++){ j=i*2; system.out.println("i="+i+" j="+j); } 結果又為: i=1 j=2 i=2 j=4 i=3 j=6 i=4 j=8 經網上求助後發現,原因在於:for迴圈在執行條件測試後,先執行程式部分,再只是步進。 2. break 與 continue 加標籤用法 在java語句裡,唯一能放標籤的地方是在迴圈語句前面。而且迴圈語句跟標籤之間不能有任何東西。 label1: outer-iteration { inner-iteration { //... break; // 1 //... continue; // 2 //... continue label1; // 3 //... break label1; // 4 } } 案例1會中斷內部迴圈。2會中斷內部當前迴圈,直接跳入下一輪迴圈。案例3中斷內部和外部迴圈,跳到label1,從外部開頭重新開始迴圈。案例4跳到label1,且不在進入迴圈。 下面舉例: public class labeledfor { static test monitor = new test(); public static void main(string[] args) { int i = 0; outer: // cant have statements here for(; true ;) { // infinite loop inner: // cant have statements here for(; i < 10; i++) { system.out.println("i = " + i); if(i == 2) { system.out.println("continue"); continue; } if(i == 3) { system.out.println("break"); i++; // otherwise i never // gets incremented. break; } if(i == 7) { system.out.println("continue outer"); i++; // otherwise i never // gets incremented. continue outer; } if(i == 8) { system.out.println("break outer"); break outer; } for(int k = 0; k < 5; k++) { if(k == 3) { system.out.println("continue inner"); continue inner; } } } } } } ///:~ 結果: "i = 0", "continue inner", "i = 1", "continue inner", "i = 2", "continue", "i = 3", "break", "i = 4", "continue inner", "i = 5", "continue inner", "i = 6", "continue inner", "i = 7", "continue outer", "i = 8", "break outer"
文章整理:西部數位--專業提供網域名稱註冊、虛擬機器主機服務 http://www.west263.com 以上資訊與文章本文是不可分割的一部分,如果您要轉載本文章,請保留以上資訊,謝謝! |