java中的switch結構

來源:互聯網
上載者:User

標籤:

 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結構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.