[TOC]
## **switch基本語法**
**基本語法:**
```
switch(表達式){
case?值1:
語句塊1;
break;
case?值2:
語句塊2:
break;
case?值3:
語句塊3:
break;
....
default:
語句塊n+1;
break;
}
```
switch? case? break? default都是關鍵字
**switch**:小括號為整形或者字符型變量? ?表達式為byte? short? int? char? Java 7后加入了String? 但不是StringBuffer和StringBuilder
?**case**:表示“情況,情形”,case值不可以重復,case 標簽可以是:
* 類型為 char、byte、 short 或 int 的常量表達式。
* 枚舉常量。
* 從 Java SE 7 開始, case 標簽還可以是字符串字面量。
**default:表示"**默**認”,即其他情況都不滿足。default 后要緊跟冒號,default 塊和 case 塊的先后順序可以變動,不會影響程序執行結果。通常,default 塊放在末尾,也可以省略不寫。**
**break:表示“停止”,即跳出當前結構。**
如果在 case 分支語句的末尾沒有 break 語句,有可能觸發多個 case 分支。那么就會接著執行下一個 case 分支語句。這種情況相當危險,常常會引發錯誤。為此,我們在程序中從不使用 switch 語句。
switch 語句的執行過程如下:表達式的值與每個 case 語句中的常量作比較。如果發現了一個與之相匹配的,則執行該 case 語句后的代碼。如果沒有一個 case 常量與表達式的值相匹配,則執行 default 語句。當然,default 語句是可選的。如果沒有相匹配的 case 語句,也沒有 default 語句,則什么也不執行。
<br>
<br>
## **switch案例一:**
小明考試,如果小明考60分,則口頭獎勵,如果小明考70分則獎勵一個胖胖糖,考80分則獎勵摩天輪一圈,考90則獎勵小霸王游戲機一部,100分則獎勵一部諾基亞手機一部
### **案例一:代碼實現**
```
import java.util.Scanner;
public class day01_switch
{
public static void main(String[] args)
{
int children = 90;
Scanner s = new Scanner(System.in);
System.out.println("請輸入分數:");
int month = s.nextInt();
s.close();
switch(month)
{
case 60:
System.out.println("剛剛及格,要再接再厲");
break;
case 70:
System.out.println("給小明同學獎勵一根胖胖糖~~~");
break;
case 80:
System.out.println("摩天輪一圈");
break;
case 90:
System.out.println("獎勵小霸王游戲機一部");
break;
case 100:
System.out.println("獎勵一部諾基亞手機一部");
break;
default:
System.out.println("挨批評吧!!!");
break;
}
}
}
```
<br>
<br>
## **switch注意**:
switch語句會將小括號里面的表達式,和case后面的數挨個對比,找到
第一個與之匹配的(僅匹配一次),然后開始逐個執行各個case后面的語句,直到遇到break;
就算case后面沒有代碼,只要看不到break,也會繼續往下走。
- Java自動化測試
- 第一章:Java:基礎內容
- 1.1:Java:Hello Word
- 1.2:Java:熱身
- 1.3:Java:注釋
- 1.4:Java:標識符
- 1.5:Java:常量
- 1.6:Java:基本數據類型
- 1.7:Java:引用類型
- 1.8:Java:String類
- 第二章:Java:運算符
- 2.1:Java:算數運算符
- 2.2:Java:關系運算符
- 2.3:Java:邏輯運算
- 2.4:Java:賦值運算符
- 2.5;Java:三元運算符
- 2.6:Java:位運算符
- 第三章:Java:循環控制語句
- 3.1:Java:for循環
- 3.2:Java:while循環
- 3.3:Java:switch
- 3.4:Java:if else
- 3.5:Java:練習題
- 第四章:Java:函數與全局/局部變量
- 4.1:Java:局部變量
- 4.2:Java:全局變量
- 第五章:Java:方法
- 5.1:Java:初識方法
- 5.2:Java:方法調用
- 5.3:Java:方法重載
- 5.4:Java:構造方法
- 5.5:Java:方法的注意事項
- 第六章:Java:面向對象
- 6.1:Java:小案例
- 6.2:Java:this 關鍵字
- 6.3:Java:super 關鍵字
- 6.4:Java:static 關鍵字
- 6.5:Java:final關鍵字
- 6.6:Java:instanceof 運算符
- 6.7:Java:面向對象之封裝
- 6.8:Java:面向對象之繼承
- 6.9:Java:面向對象之多態
- 第七章:Java:面向對象高級進階
- 7.1:Java:抽象類
- 7.2:Java:Java中String類
- 7.3:Java:interface接口
- 7.4:Java:ArrayList
- 7.5:Java:HashSet
- 7.6:Java:HashMap
- 7.7:Java:反射(reflection)
- 第八章:Java:日志以及異常捕獲
- 8.1:Java:log4j
- 8.2:Java:異常初識基礎
- 8.3:Java:未被捕獲的異常
- 8.4:Java:try和catch的使用
- 8.5:Java:多重catch語句的使用
- 8.6:Java:throws/throw 關鍵字
- 8.7:Java:finally關鍵字
- 8.8:Java:自定義異常
- 第九章:Java:xml and IO
- 9.1:Java:IO基本概念
- 9.2:java:properties
- 9.3:Java:xml基本介紹
- 9.4:Java:xml操作實例
- 第十章:Java:JDBC編程
- 10.1:Java:JDBC介紹
- 10.2:Java:JDBC查詢
- 10.3:Java:JDBC插入
- 10.4:Java:Batch
- 10.5:Java:JDBC連接池
- 第十一章:Java:TestNG
- 11.1:java:TestNG簡介
- 11.2:Java:TestNG小實例
- 11.3:Java:TestNG.xml文件配置
- 11.4:Java:TestNG基本注解
- 11.5:Java:TestNG注解代碼
- 11.6:Java:TestNG預期異常
- 11.7:Java:TestNG忽略測試
- 11.8:Java:TestNG超時測試
- 11.9:Java:TestNG分組測試