一、判斷語句
1、判斷語句1-- 單 if 語句(單分支結構)
語法格式:
if(條件表達式){
語句體;
}
執行流程:
-
-
- 首先判斷條件表達式看其結果是 true 還是 false;
- 如果是 true 就執行語句體;
- 如果是 false 就不執行語句體。
- 首先判斷條件表達式看其結果是 true 還是 false;
-
流程圖:
Tips:當 if 后面只有一條語句時,可以省略 “{}”,但為了增強程序的可讀性最好不要省略。
2、判斷語句2-- if...else 語句(標准的 if 語句)(雙分支結構)
語法格式:
if(關系表達式) {
語句體1;
}else {
語句體2;
}
執行流程:
-
-
- 首先判斷關系表達式看其結果是 true 還是 false;
- 如果是 true 就執行語句體1;
- 如果是 false 就執行語句體2;
- 首先判斷關系表達式看其結果是 true 還是 false;
-
流程圖:
3、判斷語句3 -- if...else if...else 語句(多分支結構)
語法格式:
if (判斷條件1) {
執行語句1;
} else if (判斷條件2) {
執行語句2;
}
...
}else if (判斷條件n) {
執行語句n;
} else {
執行語句n+1;
}
執行流程:
-
-
- 首先判斷關系表達式1 看其結果是 true 還是 false;
- 如果是 true就執行語句體1;
- 如果是 false 就繼續判斷關系表達式2看其結果是 true 還是 false;
- 如果是 true 就執行語句體 2;
- 如果是 false 就繼續判斷關系表達式... 看其結果是 true 還是 false;
- .....
- 如果沒有任何關系表達式為 true,就執行語句體 n+1
- 首先判斷關系表達式1 看其結果是 true 還是 false;
-
流程圖:
4、if 語句和三元運算符的互換
在某些簡單的應用中, 可以使用 if...else 語句和三元運算符互換使用的。這樣看起來更簡便一些。
Demo:
1 public static void main(String[] args) { 2 int a = 10; 3 int b = 20; 4 //定義變量,保存a和b的較大值
5 int c; 6 if(a > b) { 7 c = a; 8 } else { 9 c = b; 10 } 11 //可以上述功能改寫為三元運算符形式
12 c = a > b ? a:b; 13 }
二、選擇語句
1、選擇語句 -- switch
語句格式:
switch(表達式) {
case 常量值1:
語句體1;
[break;]
case 常量值2:
語句體2;
[break;]
...
default:
語句體n+1;
[break;]
}
執行流程:
-
-
- 首先計算出表達式的值
- 其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結 束。
- 最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。
- 首先計算出表達式的值
-
流程圖:
注意:
a、多個 case 后面的數值不可以重復,切必須是常量值
b、switch 語句中,表達式的數據類型,可以是byte,short,int,char,enum(枚舉)(1.5之后),JDK7后可以接收字符串(String)。
c、switch 語句格式可以很靈活:前后順序可以顛倒,而且break語句還可以省略。匹配哪一個case就從哪一個位置向下執行,直到遇到了break或者整體結束為止。
d、default 語句可以省略,也可以寫到任意位置,不一定會寫在最后
2、case 的穿透性
在switch語句中,如果case的后面不寫break,將出現穿透現象,也就是不會在判斷下一個case的值,直接向后運 行,直到遇到break,或者整體switch結束。
Demo:
1 public static void main(String[] args) { 2 int i = 5; 3 switch (i){ 4 case 0: 5 System.out.println("執行case0"); 6 break; 7 case 5: 8 System.out.println("執行case5"); 9 case 10: 10 System.out.println("執行case10"); 11 default: 12 System.out.println("執行default"); 13 } 14 }
上述程序中,執行case5后,由於沒有break語句,程序會一直向后走,不會在判斷case,也不會理會break,直接 運行完整體switch。
Tips:在使用 switch 語句時,寫上 break 語句是非常有必要的。