標籤:
switchkeyword的中文意思是開關、轉換的意思,switch語句在條件陳述式中特別適合做一組變數相等的推斷,在結構上比if語句要清晰非常多。
switch語句的文法格式為:
switch(運算式){
case 值1:
功能代碼1;
[break; ]
case 值2:
功能代碼2;
[break; ]
……
default:
功能代碼1;
[break; ]
}
文法說明:
1、 運算式的類型僅僅能為byte、short、char和int這4種之中的一個。
2、 值1、值2…值n僅僅能為常數或常量,不能為變數。
3、 功能代碼部分能夠寫隨意多句。
4、 breakkeyword的意思是中斷,指結束switch語句,break語句為可選。
5、 case語句能夠有隨意多句,是標號語句。
6、 default語句能夠寫在switch語句中的任何位置,功能相似於if語句中的else。
運行流程:當運算式的值和相應case語句後的值同樣時,既從該位置開始向下運行,一直運行到switch語句的結束,在運行中,假設遇到break語句,則結束switch語句的運行。
則在if-else if-else語句中,依據月份獲得每一個月的天數,不考慮閏年,的示範範例代碼例如以下:
int month = 10;
int days = 0;
switch(month){
case 1:
days = 31;
break;
case 2:
days = 28;
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
System.out.println(days);
依據switch語句的文法,該代碼也能夠簡化為例如以下格式:
int month = 10;
int days = 0;
switch(month){
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
}
System.out.println(days);
代碼說明:由於switch語句每次比較的是相等關係,所以能夠把功能同樣的case語句合并起來,並且能夠把其它的條件合并到default語句中,這樣能夠簡化case語句的書寫。該代碼的結構比最初的代碼簡潔非常多了。
雖 然在文法上switch僅僅能比較相等的結構,事實上某些區間的判別也能夠通過一定的變換使用switch語句進行實現。比如if-else if-else語句示範範例中的分數轉換的示範範例,則分數的區間位於0-100之間,假設一個一個的去比較,case語句的數量會比較多,所以能夠做一個簡單的 數字變換,僅僅比較分數的十位及以上數字,這樣數位區間就縮小到了0-10,則實現的代碼例如以下:
int score = 87;
switch(score / 10){
case 10:
case 9:
System.out.println(‘A’);
break;
case 8:
System.out.println(‘B’);
break;
case 7:
System.out.println(‘C’);
break;
case 6:
System.out.println(‘D’);
break;
default:
System.out.println(‘E’);
}
當然,switch語句不是非常適合進行區間的判別,很多其它的區間判別一般還是使用if-else if-else語句進行實現。
5.3.3 小結
if語句能夠實現程式中全部的條件,switch語句特別適合一系列點相等的判別,結構顯得比較清晰,並且運行速度比if語句要略微快一些,在實際的代碼中,能夠依據須要來使用相應的語句實現程式要求的邏輯功能。
java中的switch結構