return、break、continue三者的區別(轉載只為查閱方便,若有侵權,立刪)
前言
一般剛開始遇到這三個關鍵字,都會有點亂,return還好,特別是break和continue,特別容易搞混,所以這裡記錄一下
正文
1、return :直接跳出當前的方法,返回到該呼叫的方法的語句處,繼續執行
2. break:在迴圈體內結束整個迴圈過程
3. continue :結束本次的迴圈,直接進行下一次的迴圈
測試
這樣說還好像還是有點不太直觀,直接放程式碼測試一下:
我分別為return ,break,continue 寫了三個方法,
相同點:方法裡面都是一個for迴圈,每次迴圈都會做列印,結束迴圈後在方法體中也會列印,方法執行結束返回主
函式後也有列印。
不同點:其中在for迴圈中做了一個條件判斷,如果i = 3時,三個方法分別執行return ,break,continue
這樣我們通過列印資訊就可以看到三個關鍵字對於for迴圈執行過程的控制和當前所在方法執行過程的控制啦
三個測試函式:
-
package aa;
-
public class Test {
-
public static void main(String[] args) {
-
testBreak();
-
testContinue();
-
testReturn();
-
System.out.println("--主函式------------");
-
}
-
/**
-
* break測試方法
-
*/
-
private static void testBreak() {
-
for (int i = 0; i < 5; i++) {
-
if (i == 3) {
-
break;
-
}
-
System.out.println("--break------------" + i);
-
}
-
System.out.println("--break-------for迴圈外-----");
-
}
-
/**
-
* continue測試方法
-
*/
-
private static void testContinue() {
-
for (int i = 0; i < 5; i++) {
-
if (i == 3) {
-
continue;
-
}
-
System.out.println("--continue------------" + i);
-
}
-
System.out.println("--continue-------for迴圈外-----");
-
}
-
/**
-
* Return測試方法
-
*/
-
private static void testReturn() {
-
for (int i = 0; i < 5; i++) {
-
if (i == 3) {
-
return;
-
}
-
System.out.println("--return------------" + i);
-
}
-
System.out.println("--return-------for迴圈外-----");
-
}
-
}
break的測試列印結果
continue的測試列印結果
return的測試列印結果
結論:
從列印可以看出:
break: 當i = 3時,執行break後,直接到for迴圈外,列印--break-------for迴圈外-----,所以break的作用是結束
迴圈
continue: 當i = 3時,執行continue後,沒有列印接下的--continue------------3,但是下一次迴圈還是列印了,所以
continue只是結束了本次迴圈,
return: 當i = 3時,執行return後,不僅結束了迴圈,而且結束了方法,直接回到主函數了,所以return的作用
是結束了所在方法的呼叫
總結:
return : 作用於方法,結束當前方法,主要用來返回方法返回值,當方法有返回值的時候,返回對應型別的返回
值,沒有返回值時,可以返回空,或者不返回
continue : 作用於語法結構,結束當前方法,結束當前結構,主要用於迴圈的加速
break : 作用於語法結構,作用於結構結束當前結構,主要多用於迴圈和switch結構中
這裡說一下,我上面說的結構,是指迴圈體結構結構,switch結構等,不知道怎麼形容了這種東西了,哈哈,感覺語法結構咋一聽也不知道是什麼,解釋一下哈
理解好這個三個關鍵字,使用這三個關鍵字可以提高程式碼的執行效率。
注意:
當前兩個字,是指當前所在的結構,例如下面當break出現在迴圈體中的switch語句體內時,其作用只是跳出該switch語句體
程式碼:
breakbreak
-
/**
-
* break測試方法
-
*/
-
private static void testBreak1() {
-
for (int i = 0; i < 5; i++) {
-
switch (i) {
-
case 3:
-
break;
-
default:
-
System.out.println("--switch------------" + i);
-
}
-
System.out.println("--for---------------" + i);
-
}
-
System.out.println("----------for迴圈外-----");
-
}
列印結果: