選擇結構(二)
學習本章會用到的單詞:
case:實例,情形,情況
switch:轉換,切換,開關
default:系統默認值,違約,預設。缺省
exit:出口,通道,退出
consume:消耗,耗費,
exception:例外,除外,異議
?
switch選擇結構
????????????????? 語法:switch(表達式){
case 常量 1:
//代碼塊1;
? break;
???????? ? case 常量 2:
//代碼塊2;
break;
??? ......
??????????????????????????????? default:
???????????????????????????????????????? //代碼塊n;
?????????????? break;
????????????????????????? }
switch結構中四個關鍵字解釋:
這里是switch,case,default,break,都是Java的關鍵字。
》switch:表示:“開關”,這個開關就是switch關鍵字后面小括號里表達式的值,JDK1.7后,switch語句小括號里可以是int ,short,byte ,char,枚舉類型 ,String類型表達式。
》case:表示“情況,情形”,case后可以是int,short,byte ,char,枚舉,String類型,通常是一個固定的值。case塊可以有多個,順序可以改變,但是每個case后常量的值必須各不相同。
》default:表示默認,即其他情況都不滿足。default后要緊跟冒號。default塊和case塊的先后順序可以變動,不會影響程序執行的結果。通常,default塊放在末尾,也可以省略。
》 break:表示“停止”,即跳出當前結構。
switch選擇結構的執行具體過程:
先計算并獲得switch后面小括號里的表達式或變量的值,然后將計算結果順序與每個case后的常量比較,當二者相等時,執行這個case塊中的代碼;當遇到break時,就跳出switch選擇結構。執行switch選擇結構之后的代碼。如果沒有任何一個case后的常量與switch后的小括號中的值相等,則執行switch末尾部分的default塊中的代碼。
注意!
雖然break語句是可以省略的,,但是省略后會帶來一些問題。省略之后的后果為,當某個case后的常量值與switch后小括號中的值相匹配時,執行該case塊的代碼,后面的case就不再進行條件判斷,而直接執行后面所有case塊中的代碼,直到遇到break結束。所以在編寫switch選擇結構時不要忘記在每個case塊后加上一個“break;”,用來跳出switch選擇結構。
每個case后的代碼塊可以有多個語句,即可以有一組語句。而且不需要用“{ }”括起來。case和default后都有一個冒號,不能漏寫,否則編譯不能通過。對于每個case的結尾都要想一想是否需要跳出整個switch選擇結構。如果需要,一定不要忘記寫“break;”。
小結
swith選擇結構的條件只能是等值的判斷,而且只能是整形或字符型的等值判斷。也就是說,switch選擇結構只能用于判斷一個整型變量或表達式是否等于某個整數值的情況,或者一個字符型變量或表達式是否等于某個字符的情況,并且每一個case后面的常量值都不同。多重if選擇結構和switch選擇結構很相似,它們都是用來處理多分支條件的結構,但是switch選擇結構只能用于等值條件判斷的情況。
選擇結構總結
>Java中的if選擇結構,包括以下形式。
基本的if選擇結構:可以處理單一或組合條件的情況。
語法:
if(條件){
????????? //代碼塊
}
?????? if-else選擇結構:可以處理簡單的條件分支情況。這種形式結構簡單,但在實際開發中使用非常頻繁。
語法:
if(條件1){
???????? //代碼塊1
}else{
//代碼塊2
}
多重if選擇結構:可以處理復雜的條件分支情況。多重if選擇結構在解決需要判斷的條件是連續的區間時有很大的優勢。
語法:
if(條件1){
//代碼塊1
}else if(條件2){
//代碼塊2
}else{
//代碼塊3
}
其中,else? if塊可以有多個,也可以沒有,需要幾個else if完全取決于實際需求。else塊最多有一個或者沒有,else塊必須要放在else?? if塊之后。
嵌套if選擇結構:在if選擇結構中又包含一個或多個if選擇結構的情況,這種結構一般用于較為復雜的流程控制中。if選擇結構嵌套的形式很多,以下形式為基本的結構。
語法:
if(條件1){
if(條件2){
//代碼塊1
????????? }else{
//代碼塊2
}
}else{
if(條件3){
//代碼塊3
}else{
//代碼塊4
}
}
Java中的switch選擇結構。
當需要多重分支并且條件判斷是等值判斷的情況下,使用switch選擇結構代替多重if選擇結構會更簡單,代碼結構更清晰易讀。
處理系統異常
》通過調用Scanner對象的hasNextInt()方法,來判斷用戶從鍵盤上輸入的字符是否合法,如果用戶提示輸入的是數值,則根據輸入的具體數值跳轉到相應的菜單,如果用戶輸入的不是數字,則給出好友提示“請輸入正確的數字!”.
通過判斷,并給出用戶提示,增加了程序的健壯性,是程序能夠較好地處理發生的異常,在后面的學習中將介紹更多處理程序異常的方法。
本章總結
》當需要多重分支并且條件判斷是等值判斷的情況下,使用switch選擇結構代替多重if選擇結構會更簡單,代碼更清晰易讀。在使用switch選擇結構時不要忘記在每個case的最后上寫上break語句。
》為了增加程序的健壯性,可以在程序中主動做出判斷,并給用戶友好的提示。
》在實際開發中,遇到分支情況時,通常會綜合運用if選擇結構的各種形式及switch選擇結構來解決。