Java 分支結構

1.分支結構

  任何複雜的邏輯均可以經過「順序」、「分支」、「循環」三種基本的程序結構來實現。分支結構:程序在運行中,根據不一樣的條件執行不一樣的語句。java

 

三種結構:spa

  • if結構:知足條件時執行語句,不知足則不執行(1條路)
  • if...else結構:知足條件執行語句,不知足則執行另外的語句(兩條路)
  • if...else if結構:多個條件,知足不一樣條件執行不一樣語句(多條路)

1.1 if結構

語法:blog

if(條件表達式){字符串

  語句塊;it

}class

1)案例1,判斷一個整數是否是偶數效率

public class Test {
    public static void main(String[] args){
        int a = 4;
        if(a%2==0){
        	System.out.println(a+"是偶數");
        }
        System.out.println("over");
    }

}

1.2 if...else結構

語法:循環

if(條件表達式){ 語法

  語句塊1;程序

}else{

  語句塊2;

}

1)案例1,判斷一個整數是否是偶數,並輸出結果

public class Test {
    public static void main(String[] args){
        int a = 4;
        if(a%2==0){
        	System.out.println(a+"是偶數");
        }else{
        	System.out.println(a+"不是偶數");
        }
        System.out.println("over");
    }

}

3.if...else if結構(嵌套)

語法:

if(條件表達式1){

  語句塊1;

}else if(條件表達式2){

  語句塊2;

}else if(條件表達式3){

  語句塊3;

}

1)案例1,判斷一個數是正數、負數或是0並輸出結果

public class Test {
    public static void main(String[] args){
        int a = 4;
        if(a>0){
        	System.out.println(a+"是正數");
        }else if(a<0){
        	System.out.println(a+"是負數");
        }else if(a==0){
        	System.out.println(a+"是0");
        }
        System.out.println("over");
    }

}

2.switch-case

   一種特殊的分支結構,只能用於判斷整數,能夠根據一個整數表達式的不一樣值,從不一樣程序入口開始執行,須要和break配合使用,執行完相應的語句後則退出switch塊,不執行下面的語句。

  若是不加break,則會在知足條件後,將該條件下面的其餘條件的語句塊一塊兒按順序輸出,直到遇到break或}中止,以下案例2。

  default選項能夠不寫,也不是必須放在後一個(建議放最後),默認匹配完全部條件後不匹配的狀況下才會執行default語句,default能夠不寫break,以下案例3。

 

語法:

switch(判斷整數){

case 1:

  語句塊1;

  break;

case 2:

  語句塊2;

  break;

case 3:

  語句塊3;

  break;

default:

  語句塊4;

  break;

}

1)案例1

public class Test {
    public static void main(String[] args){
        int a = 4;
        switch(a){
        case 1:
        	System.out.println("A");
        	break;
        case 2:
        	System.out.println("B");
        	break;
        case 3:
        	System.out.println("C");
        	break;
        default:
        	System.out.println("D");
        	break;
        }
    }
}

/*
運行結果:D
*/

2)案例2,不加break的狀況

public class Test {
    public static void main(String[] args){
        int a = 2;
        switch(a){
        case 1:
        	System.out.println("A");
        	break;
        case 2:
        	System.out.println("B");

        case 3:
        	System.out.println("C");
        	
        default:
        	System.out.println("D");
        	
        }
    }
}


/*
運行結果:
B
C
D
*/

3)案例3,default不寫在最後,default須要加break,以下狀況

public class Test {
    public static void main(String[] args){
        int a = 4;
        switch(a){
        default:
        	System.out.println("D");
        case 1:
        	System.out.println("A");
        	break;
        case 2:
        	System.out.println("B");
        	break;
        case 3:
        	System.out.println("C");
        	break;
        }
    }
}

/*
運行結果:
D
A
*/

2.1 switch-case的優缺點

1)優勢:

  • 經常和break語句配合使用實現分支的功能
  • 與if...else的主要區別在於switch-case結構的效率高、結構更清晰
  • 從JDK7.0開始,switch-case支持字符串表達式,以下案例

2)缺點:

  •  只能判斷整數(字符串)相等

3)案例1,判斷字符串

public class Test {
    public static void main(String[] args){
        String sng = "B";
        switch(sng){
        case "A":
        	System.out.println("A");
        	break;
        case "B":
        	System.out.println("B");
        	break;
        default:
        	System.out.println("C");
        	break;
        }
    }
}


/*
運行結果:B
*/

4)案例2,判斷字符

public class Test {
    public static void main(String[] args){
        char sng = 'B';
        switch(sng){
        case 'A':
        	System.out.println("A");
        	break;
        case 'B':
        	System.out.println("B");
        	break;
        default:
        	System.out.println("C");
        	break;
        }
    }
}


/*
運行結果:B
*/
相關文章
相關標籤/搜索