【轉載】java continue和break的幾個問題

來源:互聯網
上載者:User
最近在機子上裝了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
以上資訊與文章本文是不可分割的一部分,如果您要轉載本文章,請保留以上資訊,謝謝!

相關主題
  • java中的測不準原理_java認證
  • java中兩個字串“Equals”和“==”的區別-JSP教程,Java技巧及代碼
  • Java中調用外部命令-JSP教程,Java技巧及代碼
  • java中四種操作xml方式的比較-JSP教程,Java與XML
  • Java中利用JMF編寫網路攝影機拍照程式-JSP教程,Java技巧及代碼
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.