break、continue以及return的區別以下:微信
一、breakspa
break用於徹底結束一個循環,跳出循環體,再也不執行下面的代碼。對於多層循環嵌套,若是break語句出如今嵌套循環中的內循環時,它僅僅只是終止了內循環的執行,對外循環不影響其執行。例如以下程序:code
public class BreakTest { public static void main(String[] args) { for (int i = 0; i < 5; i++) { if (i == 1) { // 執行該語句時將結束循環 break; } } } }
運行上面程序能夠看到,當i等於1時,循環體遇到break語句,程序跳出該循環。blog
break語句不只能夠結束其所在的循環,還能夠結束外層循環,只須要在外層循環定義一個緊跟英文冒號(:)的標識,而後在循環體裏使用帶有標識的break語句,這樣能夠跳出多層循環。示例以下:class
public class BreakTest { public static void main(String[] args) { // outer做爲外層循環的標識 outer: for (int i = 0; i < 8; i++) { // 內層循環 for (int j = 0; j < 5; j++) { if (j == 3) { // 跳出outer標籤所標識的循環 break outer; } } } } }
一般緊跟break以後的標識,必須在break所在的循環的外層循環以前定義纔有意義,由於break默認就是結束當前其所在的循環。循環
2. continue二維碼
continue的做用和break有點相似,區別是continue不會終止循環,只是忽略本次循環剩下的語句,接着開始下一次循環;而break則是徹底終止循環。下面程序示範了continue的用法:程序
public class ContinueTest { public static void main(String[] args) { for (int i = 0; i < 5; i++) { System.out.println("i=" + i); if (i == 2) { // 忽略本次循環剩下的語句 continue; } System.out.println("continue後的輸出語句"); } } }
打印結果爲:方法
i=0
continue後的輸出語句
i=1
continue後的輸出語句
i=2
i=3
continue後的輸出語句
i=4
continue後的輸出語句im
從打印結果能夠看出,當i等於2時,"continue後的輸出語句"沒有打印出來,由於continue把此行代碼忽略了,繼續執行下一次循環。
與break相似的是,continue後也能夠緊跟一個標識,用於直接跳過標識所在循環的當次循環的剩下語句,從新開始下一次循環。例以下面的代碼示例:
public class ContinueTest { public static void main(String[] args) { // 外層循環 outer: for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { System.out.println("i=" + i + ";j=" + j); if (j == 1) { // 忽略outer所在循環中本次循環剩下的語句 continue outer; } } } } }
打印結果爲:
i=0;j=0
i=0;j=1
i=1;j=0
i=1;j=1
i=2;j=0
i=2;j=1
i=3;j=0
i=3;j=1
從運行結果中能夠看出,當j等於1時,因爲執行了continue outer語句,結束了外循環的當次循環,j的值沒法超過1。
3. return
return關鍵字不是用來結束循環的,而是用於結束方法的。當一個方法執行到return語句時,該方法將被結束。若是在一個方法的循環體內執行return語句,這個方法就會結束,固然循環天然也就隨之結束。例以下面程序:
public class ReturnTest { public static void main(String[] args) { for (int i = 0; i < 3; i++) { System.out.println("i=" + i); if (i == 1) { return; } System.out.println("return後的輸出語句"); } } }
打印結果爲:
i=0
return後的輸出語句
i=1
從打印結果能夠看出,當i等於1時,因爲執行了return語句,因此這個方法及方法裏的循環都結束了。值得注意的是:return結束的是整個方法,而無論這個return處於多少層循環以內。
引伸的問題:Java語言中是否存在goto關鍵字?
goto關鍵字是Java的保留字,目前尚未在Java中使用。雖然不能像C/C++那樣可使用goto跳出多重循環,但在Java語言中可使用break和continue來達到一樣的效果。
歡迎關注微信公衆號【Java典籍】,收看更多Java技術乾貨!
▼微信掃一掃下圖↓↓↓二維碼關注