switch選擇結(jié)構(gòu)
if選擇結(jié)構(gòu)只要針對的是區(qū)間判斷
但現(xiàn)實生活中 不只有區(qū)間判斷還有等值判斷
為了解決等值判斷 Java給我們提供了switch選擇結(jié)構(gòu)
語法格式:
``` java
switch(表達式){
? ? ? ? case 常量1:
? ? ? ? ? ? //代碼塊1;
? ? ? ? ? ? break;
? ? ? ? case 常量2:
? ? ? ? ? ? //代碼塊2;
? ? ? ? ? ? break;
? ? ? ? ? .....
? ? ? ? default:
? ? ? ? ? ? //代碼塊n
? ? ? ? ? ? break;
}
? ? ? ?
```
switch 選擇結(jié)構(gòu)用到了四個關(guān)鍵字 :
switch :表示”開關(guān)“? 稠茂,這個開關(guān)就是switch關(guān)鍵字后面小括號里的值唬滑,小括號里藥房一個整形變量(表達式)或字符型變量(表達式)
case :表示“情況饼疙,清形”? ? case后面必須是一個整形或字符型的常量前酿,每個case后常量的值必須各不相同
default :表示“默認”? 即:其他情況都不滿足三幻,可以省略
break: 表示”停止“功偿, 即跳出當(dāng)前結(jié)構(gòu)
案例代碼:
```java
import java.util.Scanner;
public class 練習(xí)switch {
public static void main(String[] args) {
? ? ? ? Scanner scanner = new Scanner(System.in);
? ? ? ? System.out.println("請輸入你獲得的名次");
? ? ? ? ? ? ? int score = scanner.nextInt();
? ? ? ? switch (score){
? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? System.out.println("參加麻省理工大學(xué)組織的1個月夏令營");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? System.out.println("獎勵惠普筆記本電腦一部");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 3 :
? ? ? ? ? ? ? ? System.out.println("獎勵移動硬盤一個");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? System.out.println("沒有獎勵");
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? }
}
```
break 不能省略
省略的后果是:當(dāng)某個case后的長量值與switch后小括號中的值相匹配時 執(zhí)行改case快的代碼 后面的case不再是進行條件判斷恨旱,而直接執(zhí)行所有case中的代碼知道遇到break結(jié)束