1. 程式人生 > 實用技巧 >if與switch(break穿透)

if與switch(break穿透)

## if與switch(分支語句)

### 一.if...else if...else
1.語法
if(條件表示式1){
語句體1;
}else if(條件表示式2){
語句體2;
}else{
語句體3;
}
執行流程:
從條件表示式1開始判斷,如果為true,執行語句體1;如果為false,執行條件表示式2,否則執行語句體3。
2.案例
輸入年份判斷閏年還是平年

```java
public class Demo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//建立掃描器
System.out.println("請輸入想要判斷的年:");
int year = sc.nextInt();//設定變數接受使用者輸入的年份
if(year % 4 ==0 && year % 100 !=0 || year % 400 == 0){
System.out.println(year + "是閏年");
}else{
System.out.println(year + "是平年");
}
}
}
```


1.語法
switch(表示式){
case 常量1;
需要執行的語句體1;
break;
case 常量1;
需要執行的語句體1;

break;
......
default:
需要執行的語句體;
break;
}
執行流程:
表示式和case後面的常量值進行比較,和哪個case的值相等,就執行哪個case的語句體;遇到break就結束。(注意事項:寫switch時要注意防止break穿透)
2.案例

```java
package com.switch_; public class SwitchDemo3 {
public static void main(String[] args) {
String level="黃金";
switch(level){
case "黑鐵":
System.out.println("黑鐵");
break;
case "青銅":
System.out.println("青銅");
break;
case "白銀":
System.out.println("白銀");
break;
case "黃金":
System.out.println("黃金");
break;
default:
System.out.println("其他");
}
}
}

//最終結果為黃金,因為level的值與第四個case的值相匹配,
所以執行裡面的語句體,然後遇到break跳出迴圈,
如果沒有break,會穿透,輸出的結果就是 黃金 其他
```