當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Java:switch-case語句
我們生活中總會(huì)出現(xiàn)形形色色的選擇,中意選擇的不同,往后的故事往往也不盡相同。計(jì)算機(jī)中想要實(shí)現(xiàn)現(xiàn)實(shí)中的選擇交互,就需要用到“選擇語句”。當(dāng)然簡單的選擇可以用if...else...,但是在多個(gè)需要抉擇的情況下,就需要用switch...case語句。下面我們來說說Java中的switch...case...語句的用法,當(dāng)然我們也可以適當(dāng)?shù)耐珻語言中的switch...case...語句的用法做些比較,對(duì)比學(xué)習(xí)。
一個(gè) switch 語句允許測(cè)試一個(gè)變量等于多個(gè)值,每個(gè)值稱為一個(gè)case。switch 語句會(huì)根據(jù)測(cè)試的變量的值會(huì)對(duì)每個(gè)case 進(jìn)行檢查,匹配對(duì)應(yīng)的選項(xiàng),執(zhí)行不同的處理語句。其處理思路如下圖:
對(duì)應(yīng)到計(jì)算機(jī)語言的語法:
switch( expression ){
case constant-expression:
語句塊;
break; /* 可選的 */
case constant-expression:
語句塊;
break; /* 可選的 */
...... /* 任意數(shù)量 */
default: /* 可選的 */
語句塊;
break; /* 可選的 */
}
switch:表示“開關(guān)”:
這個(gè)開關(guān)就是 switch 關(guān)鍵字后面expression的值。expression是一個(gè)常量表達(dá)式,整型變量或字符型變量(byte、short、int 或者 char)。從 Java SE 7 開始,switch 支持字符串 string類型。同時(shí) case 標(biāo)簽必須為字符串常量或字面量。注意這里與C語言是有不同的,C語言中只能針對(duì)基本數(shù)據(jù)類型中的整型類型或可以轉(zhuǎn)換為整型(int、char、byte、short)、枚舉類型使用switch,其他類型必須使用if。
case:表示“情況,情形”:
一個(gè) switch 中可以有任意數(shù)量的 case 語句。在每個(gè) case 后要跟一個(gè)整型和字符型的常量表達(dá)式,和一個(gè)冒號(hào)。case 的 constant-expression 必須與 switch 中的變量具有相同的數(shù)據(jù)類型。case 塊可以有多個(gè),順序可以改變,但是每個(gè) case 后的常量值必須各不相同。
break:表示“停止”:
當(dāng)遇到 break 語句時(shí),switch 語句終止。程序跳轉(zhuǎn)到 switch 語句后面的語句執(zhí)行,即跳出當(dāng)前結(jié)構(gòu)。case 語句不必須要包含 break 語句。當(dāng)變量的值與 case 語句的值相等時(shí),那么 case 語句之后的語句開始執(zhí)行,直到 break 語句出現(xiàn)才會(huì)跳出 switch 語句。
default:表示“默認(rèn)”:
一個(gè) switch 語句可以有一個(gè)可選的 default,出現(xiàn)在 switch 的結(jié)尾。switch 語句在其開始處使用一個(gè)簡單的表達(dá)式。表達(dá)式的結(jié)果將與結(jié)構(gòu)中每個(gè) case 子句的值進(jìn)行比較。default 可用于在上面所有 case 都不為真時(shí)執(zhí)行一個(gè)任務(wù)。通常,default可以省略不寫,default 中的 break 語句也不是必需的。default 塊和case 塊的先后順序可以變動(dòng),不會(huì)影響程序執(zhí)行結(jié)果。
例程for JAVA:
public class Test {
public static void main(String[] args){
char a = ‘B’;
switch(a){
case ‘A’ :
System.out.println(" A ");
break;
case ‘B’ :
System.out.println(" B ");
case ‘C’ :
System.out.println(" C ");
case ‘D’ :
System.out.println(" D ");
break;
default :
System.out.println(" default ");
}
}
}
結(jié)果:
B
C
D
例程 for C:
int main () {
char grade = 'B';
switch(grade) {
case 'A' :
printf("很棒!\n" );
break;
case 'B' :
printf("做得好\n" );
case 'C' :
printf("您通過了\n" );
case 'D' :
printf("最好再試一下\n" );
break;
default :
printf("無效的成績\n" );
}
return 0;
}
結(jié)果:
做得好
您通過了
最好再試一下