break可以離開目前switch、for、while、do..while的區塊,並執行區塊後下一個陳述句,在switch中主要用來中斷下一個case比對,在for、while與do..while中,主要用於中斷目前迴圈。continue作用與break類似,不過使用於迴圈,break會結束區塊執行,而continue只會略過之後陳述句,並回到迴圈區塊開頭進行下一次迴圈,而不是離開迴圈。例如:for(int i = 1; i < 10; i++) { if(i == 5) { break; } System.out.printf("i = %d%n", i); }這段程式會顯示i = 1到i = 4,因為在
i等於5時就會執行break而離開迴圈。再看下面這個程式:for(int i = 1; i < 10; i++) { if(i == 5) { continue; } System.out.printf("i = %d%n", i); } 這段程式會顯示i =1到4,以及6到9,當i等於5時,會執行continue直接略過之後陳述句,也就是該次的System.out.printf()該行並沒有被執行,直接從區塊開頭執行下一次迴圈,所以i = 5沒有被顯示。
break與continue還可以配合標籤使用,例如本來break只會離開for迴圈,設定標籤與區塊,則可以離開整個區塊。back : { for(int i = 0; i < 10; i++) { if(i == 9) { System.out.println("break"); break back; } } System.out.println("test"); } 程式執行結果會顯示
break;back是個標籤,當break back;時,返回至back標籤處,之後整個back區塊不執行而跳過,所以System.out.println("test")該行不會被執行。continue也有類似的用法,只不過標籤只能設定在for之前。例如:back1: for(int i = 0; i < 10; i++){ back2: for(int j = 0; j < 10; j++) { if(j == 9) { continue back1; } } System.out.println("test"); } continue配合標籤,可以自由地跳至任何一層for迴圈,可以試試continue back1與continue back2的不同,設定back1時,System.out.println("test")不會被執行。

