官术网_书友最值得收藏!

3.6 多分支語句switch

用if-else-if語句處理多個分支選擇的情況顯得有些笨拙,為此Java語言提供了一個多分支語句switch,可以使多分支選擇編程更加簡單明了。

其一般形式為:

執(zhí)行流程是:計算表達式的值,并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。switch使用的表達式及常量表達式的類型可以是char、byte、short、int或其包裝器類型,從Java 7開始還可以是字符串常量,也可以是枚舉常量。switch使用枚舉常量有一些特殊的規(guī)定,后面章節(jié)將詳細介紹。

顯然,從某個匹配的常量表達式開始一直向下執(zhí)行的流程并不符合大多數(shù)多分支選擇編程的需求,一般需要像if-else-if語句那樣的執(zhí)行流程。使用Java語言的break語句可以跳出switch語句,即在switch語句中匹配的常量表達式所跟隨的語句序列最后加上“break;”語句,就能夠直接使執(zhí)行流程轉(zhuǎn)到switch語句塊之后執(zhí)行。switch語句的常用形式是:

例如,在例3.4設計的四則運算計算器程序的calcOpr方法中使用了if-else-if語句結(jié)構(gòu)針對用戶選擇的+、-、*、/ 4種情況進行判斷,當光標懸停到NetBeans IDE的第一個if語句的行號處時,出現(xiàn)即時幫助框,建議用switch替換if鏈(見圖3.12)。單擊該行號處的圖標,單擊指令,程序的結(jié)構(gòu)會替換為switch語句(見圖3.13)。

從圖3.12和圖3.13可以看出,switch語句比相同程序邏輯的if-else-if鏈更清晰易懂,程序代碼也更加簡潔。

在使用switch語句時還應注意以下幾點。

(1)在case后的各常量表達式的值不能相同,否則會出現(xiàn)錯誤。

(2)在case后,允許有多個語句,可以不用{}括起來。

(3)default子句可以省略不用。

圖3.12 NetBeans IDE的即時幫助框及if-else-if鏈

圖3.13 if鏈的對應switch語句

主站蜘蛛池模板: 隆尧县| 邻水| 探索| 武山县| 墨竹工卡县| 凉山| 台中县| 正安县| 肥西县| 布尔津县| 越西县| 怀远县| 邻水| 西乌珠穆沁旗| 稷山县| 苍梧县| 历史| 肥西县| 佛山市| 观塘区| 洛川县| 太仓市| 武宣县| 静宁县| 青龙| 西乌珠穆沁旗| 南漳县| 晴隆县| 宝坻区| 东宁县| 仙桃市| 南宁市| 淳化县| 买车| 多伦县| 平舆县| 临武县| 平果县| 枝江市| 邵武市| 德化县|