1. 程式人生 > >java中的break、continue、return區別

java中的break、continue、return區別

1、break:

可以用於for迴圈等迴圈體和開關語句switch case中;

用在迴圈中時,break是指跳出當前的迴圈體,如果是巢狀迴圈的話,只能跳出離break最近的for迴圈層;例如:

 public static void main(String[] args) {
        for (int i = 0; i<=5; i++) {
            if (i == 3){
                System.out.println("我是3,我要跳出迴圈了,後面的都不能執行了ㄟ(⊙ω⊙ㄟ)");
                break;
            }
            System.out.println(i);
        }
    }


執行結果:

0
1
2
我是3,我要跳出迴圈了,後面的都不能執行了ㄟ(⊙ω⊙ㄟ)


Java中,如何跳出當前的多重巢狀迴圈? 


在最外層迴圈前加一個標記如flag,然後用break flag;可以跳出多重迴圈。

用於開關語句switch case中:break可使程式跳出switch而執行switch以後的語句;

 
此時分兩種情況: 
1、如果滿足條件的case有break,則直接跳出switch語句; 
2、如果滿足條件的case沒有break,此時又分兩種情況: 
  2.1、之後的case也都沒有break,就從滿足條件的那個case開始執行,直到執行完default後結束; 
  2.2、之後的case有一個或多個break,就從滿足條件的那個case開始執行,直到遇到break後結束; 


例子1:

public static void main(String[] args) {
            int flag = 3;
            switch (flag) {
                case 1:
                    System.out.println("1");
                    break;
                case 2:
                    System.out.println("2");
                    break;
                case 3:
                    System.out.println("flag為3,此時case為3且有break,結束switch");
                    break;
                case 4:
                    System.out.println("4");
                    break;
                case 5:
                    System.out.println("5");
                    break;
                default:
                    System.out.println("default");
            }
        }


執行結果:

flag為3,此時case為3且有break,結束switch

例子2.1:

   

public static void main(String[] args) {
            int flag = 3;
            switch (flag) {
                case 1:
                    System.out.println("1");
                    break;
                case 2:
                    System.out.println("2");
                    break;
                case 3:
                    System.out.println("3");
                    //break;
                case 4:
                    System.out.println("4");
                    //break;
                case 5:
                    System.out.println("5");
                    //break;
                default:
                    System.out.println("等於3的case,沒有break,且之後的case也都沒有break,則一直執行到default才結束");
            }
        }


輸出結果:

3
4
5
等於3的case,沒有break,且之後的case也都沒有break,則一直執行到default才結束


例子2.2:

   

public static void main(String[] args) {
            int flag = 3;
            switch (flag) {
                case 1:
                    System.out.println("1");
                    break;
                case 2:
                    System.out.println("2");
                    break;
                case 3:
                    System.out.println("3");
                    //break;
                case 4:
                    System.out.println("4");
                    //break;
                case 5:
                    System.out.println("等於3的case,沒有break,但我有break,則執行到我這裡就結束");
                    break;
                default:
                    System.out.println("default");
            }
        }


執行結果:

3
4
等於3的case,沒有break,但我有break,則執行到我這裡就結束


2、continue :

當只有一層迴圈時,結束當前迴圈的本次迴圈,當有迴圈巢狀時,結束本層迴圈的本次迴圈;

   

 public static void main(String[] args) {
        for (int i = 0; i<=5; i++) {
            if (i == 3){
                System.out.println("我是3,因為continue,只是我輸出不了,後面的仍然能執行ㄟ(⊙ω⊙ㄟ)");
                continue;
            }
            System.out.println(i);
        }
    }


執行結果:

0
1
2
我是3,因為continue,只是我輸出不了,後面的仍然能執行ㄟ(⊙ω⊙ㄟ)
4
5


3、return:

跳出當前方法; 
如果方法返回值是void,則直接用return; 
如果方法返回值是String等型別,則需要retrun “”; 

public static void main(String[] args) {
        for (int i = 0; i<=5; i++) {
            if (i == 3){
                System.out.println("我是3,因為continue,只是我輸出不了,後面的仍然能執行ㄟ(⊙ω⊙ㄟ)");
                return;
            }
            System.out.println(i);
        }
    }


執行結果:

0
1
2
我是3,因為continue,只是我輸出不了,後面的仍然能執行ㄟ(⊙ω⊙ㄟ)