程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程那些事兒34——switch語句語法

Java編程那些事兒34——switch語句語法

編輯:關於JAVA

5.3.2 switch語句

switch關鍵字的中文意思是開關、轉換的意思,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、break關鍵字的意思是中斷,指結束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語句要稍微快一些,在實際的代碼中,可以根據需要來使用對應的語句實現程序要求的邏輯功能。

文章來源:http://blog.csdn.net/Mailbomb/archive/2008/06/14/2547207.aspx

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved