break、continue以及return的區別

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技術乾貨!

  ▼微信掃一掃下圖↓↓↓二維碼關注

 

相關文章
相關標籤/搜索