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

來源:互聯網
上載者:User
 

Java編程那些事兒34——switch語句文法鄭州遊戲學院 陳躍峰出自:http://blog.csdn.net/mailbomb 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語句要稍微快一些,在實際的代碼中,可以根據需要來使用對應的語句實現程式要求的邏輯功能。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.