1. 程式人生 > >java中的switch語句中break和continue的區別--------總算是弄明白了

java中的switch語句中break和continue的區別--------總算是弄明白了

1、先上一個例子:
 
package com.test;

import java.util.ArrayList;
import java.util.List;
public class SwitchTest {
   
    public void ss(List<Integer> l){
        for(int i=0;i<l.size();i++){
             switch(l.get(i)){
            case 0:
                System.out.println("this is 0");
                continue;
            case 1:
                System.out.println("this is 1");
            case 2:
                System.out.println("this is 2");
            case 3:
                System.out.println("this is 3");
                break;
            default:
                System.out.println("default");
            }
            System.out.println("out switch");
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Integer> l=new ArrayList<Integer>();
        l.add(0);
        l.add(1);
        l.add(2);
        l.add(3);
        l.add(4);
        SwitchTest st=new SwitchTest();
        st.ss(l);
    }
}
分析上面程式結論如下:
1、當 程式中   System.out.println("out switch"); 這句話沒有的話,也就是說switch 後面沒有其他執行業務邏輯的時候,break 和continue 效果是一樣的。都是跳出本次迴圈,執行下一次迴圈。
2、當switch 後面有其他執行業務邏輯的時候,break 和continue 效果就不一樣了。break是跳出switch後,繼續執行後面的邏輯。上述例子就會輸出 out switch 。單如果是continue就是跳出switch,不執行switch後面的業務邏輯。
3、當switch語句中沒有contiune和break的時候,程式匹配後,會繼續執行case後面的條件。例如上例中:
          case 1:
                System.out.println("this is 1");
            case 2:
                System.out.println("this is 2");
            case 3:
                System.out.println("this is 3");
            break;
這部分。如果於1匹配之後,會繼續輸出 this is 2  和 this is 3  直到遇到 this is 3後面的break 才跳出switch.同樣如果匹配的是2,還是會執行case 3 後面的語句。直到遇到beak跳出switch。

當然如果beak、contiune 用在for 或者while迴圈的時候,contine就是跳出本次迴圈,繼續下一次迴圈。而break就是跳出相應的for或者while迴圈,不在執行。