選擇結構語句
選擇結構:也被稱爲分支結構。選擇結構有特定的語法規則,代碼要執行具體的邏輯運算進行判斷,邏輯運算的結果有兩個,
因此產生選擇,按照不一樣的選擇執行不一樣的代碼。Java語言提供了兩種選擇結構語句:if語句和switch語句
1、if語句 if語句有三種語法格式。
(1)、if語句第一種語法格式(適合一種判斷)
if(條件表達式){
語句體;
}
執行流程:判斷條件表達式的結果,當爲true時,{}中的執行語句體纔會執行,不然不執行語句體。string
注意:
條件表達式的結果必須是布爾類型;if若是控制的語句只有一條,能夠不寫中括號{},直接跟語句體,但若是跟多條語句,大括號不能省略,
建議兩種狀況下都寫。
代碼示例演示:
[Java] 純文本查看 複製代碼
?
1
2
3
4
5
6
1.//if語句第一種語法格式
int i=6;
if(i%2==0){
System.out.println("if條件爲true");
}
System.out.println("over");
(2)、if語句第二種語法格式(適合兩種判斷)
if(條件表達式){
語句體1;
}else{
語句體2;
}
執行流程:一樣先判斷條件表達式的結果,若是爲true,則執行語句體1,爲false則執行語句體2.it
代碼演示:效率
[Java] 純文本查看 複製代碼
?
1
2
3
4
5
6
7
8
//if語句第二種語法格式
int j=-2;
if(j>0){
System.out.println(j+"爲正數");
}else{
System.out.println(j+"爲負數");
}
System.out.println("over");
語法
(3)、if語句第三種語法格式(適合多種判斷)
if(條件表達式1){
語句體1;
}else if(條件表達式2){
語句體2;
}
...
else if(條件表達式n){
語句體n;
}else{
語句體n+1;
}
執行流程:首先判斷條件表達式1的結果,若是爲true,則執行語句體1,爲false則繼續判斷條件表達式2的結果,若是爲true,則執行語句體2,
爲false則繼續判斷下一個條件表達式的結果,以此類推,若是全部的判斷條件都爲false,則意味着全部的條件均未獲得知足,則執行語句體n+1。程序
代碼演示:static
[Java] 純文本查看 複製代碼
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
/size
font=微軟雅黑// if語句第三種語法格式 /size
font=微軟雅黑int scores = 88;
if (scores >= 90) {
System.out.println("您的成績被評定爲A級");
} else if (scores >= 80) {
System.out.println("您的成績被評定爲B級");
} else if (scores >= 70) {
System.out.println("您的成績被評定爲C級");
} else if (scores >= 60) {
System.out.println("您的成績被評定爲D級");
} else if (scores >= 0) {
System.out.println("您的成績被評定爲E級");
} else {
System.out.println("成績輸入有誤!!!");
}語言
2、switch語句
switch語句的語法格式:
switch(表達式){
case 目標值1:
執行語句1;
break;
case 目標值2:
執行語句2;
break;
......
case 目標值n:
執行語句n;
break;
default:
執行語句n+1;
break;
}co
執行流程:switch語句將表達式的值與每一個case中的目標值進行匹配,若是找到了匹配的值,會執行對應的case後的語句,遇到break就會結束。
若是沒找到任何匹配的值,就會執行default後的語句,而後程序結束。cas
注意:
(1)、表達式接收的值類型:在switch語句中的表達式只能是byte、short、char、int類型的值,若是傳入其餘類型的值,程序就會報錯。
(JDK5.0引入enum枚舉和JDK7.0接收String類型)。
(2)、case後面跟的是要和表達式進行比較的值,語句體部分能夠是一條或多條語句,break表示中斷,結束的意思,能夠結束switch語句,
default語句表示全部狀況都不匹配的時候,就執行該處的內容,和if語句的else類似。default能夠省略,但通常不建議,
default能夠放在switch語句的任何位置,通常放在最後位置,放在最後位置時緊跟它的break能夠省略。
(3)、switch結束的狀況:當程序執行過程當中遇到了break;當程序執行到了末尾處。枚舉
代碼演示:
[Java] 純文本查看 複製代碼
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void main(String[] args) {
int month = 12;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month + "月有31天!");
break;
case 2:
System.out.println(month + "月有28天!");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month + "月有30天!");
break;
default:
System.out.println("不存在該月!");
break;
}
}
注意:if和switch語句很像,那麼在具體場景下如何合理選擇使用哪一種語句呢?(1)、能用switch語句實現的均可以用if語句替換,而且if語句的條件表達式沒有任何限制,可是switch語句條件表達式的類型只能是byte、short、int、char這四種類型,以及後加入的枚舉和string,而且要注意break的使用。(2)、 If語句通常用於分支語句比較少的結構,而switch用於分支較多的結構。(3)、若是判斷具體數值很少,並且符合byte、short、int、char這四種類型雖然兩個語句均可以使用,但建議使用switch語句,由於效率稍高。其餘狀況,對區間判斷,對結果爲boolean型的判斷,使用if,if的使用範圍更廣。