Java編程那些事兒33——if語句文法(3)鄭州遊戲學院 陳躍峰出自:http://blog.csdn.net/mailbomb
5.3.1.3 if-else if-else語句 在現實中,有些時候的條件不是一個,而是一組相關的條件,例如將阿拉伯數字轉換為中文大寫,根據分數轉換為對應的等級等,都是多條件的結構,在程式中為了避免寫多個if語句的結構,提供了一類專門的多分支語句,這就是if-else if-else語句。 if-else if-else語句的文法格式為: if(條件1) 功能代碼1; else if(條件2) 功能代碼2; else if(條件3) 功能代碼3; …… else 功能代碼; 文法說明:1、 else if是else和if兩個關鍵字,中間使用空格進行間隔。2、 條件1到條件n都是boolean類型3、 else if語句可以有任意多句4、 最後的else語句為可選5、 如果功能代碼部分不是語句塊,也就是不用大括弧,就只能寫一句。執行流程:當條件1成立時,則執行功能代碼1;當條件1不成立且條件2成立時,則執行功能代碼2;如果條件1、條件2都不成立且條件3成立,則執行功能代碼3,依次類推,如果所有條件都不成立,則執行else語句的功能代碼。其執行流程的流程圖如上所示。 下面是一個實現根據月份的值,輸出該月份包含的日期數,2月份全部輸出28,不考慮閏年的範例程式碼: int month = 3; int days = 0; //日期數 if(month == 1){ days = 31; }else if(month == 2){ days = 28; } else if(month == 3){ days = 31; } else if(month == 4){ days = 30; } else if(month == 5){ days = 31; } else if(month == 6){ days = 30; } else if(month == 7){ days = 31; } else if(month == 8){ days = 31; } else if(month == 9){ days = 30; } else if(month == 10){ days = 31; } else if(month == 11){ days = 30; } else if(month == 12){ days = 31; } System.out.println(days); 再來看一個範例程式碼,該代碼的功能是實現將百分制的成績轉換為A、B、C、D和E,代碼如下: int score = 87; if(score >= 90){ System.out.println(‘A’); } else if(score >= 80){ System.out.println(‘B’); } else if(score >= 70){ System.out.println(‘C’); } else if(score >= 60){ System.out.println(‘D’); } else{ System.out.println(‘E’); } 從該代碼中可知,每個else if語句在書寫時是有順序的,在實際書寫時,必須按照邏輯上的順序進行書寫,否則將出現邏輯錯誤。 if-else if-else語句是Java語言中提供的一個多分支條件陳述式,但是在判斷某些問題時,會書寫的比較麻煩,所以在文法中提供了另外一個語句——switch語句來更好的實現多分支語句的判別。