Java 分支結構


1.分支結構

  任何復雜的邏輯都可以通過“順序”、“分支”、“循環”三種基本的程序結構來實現。分支結構:程序在運行中,根據不同的條件執行不同的語句。

 

三種結構:

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

1.1 if結構

語法:

if(條件表達式){

  語句塊;

}

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
*/

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM