if...else if...else語句
if語句後面可以跟elseif…else語句,這種語句可以檢測到多種可能的情況。
使用if,else if,else語句的時候,需要注意下面幾點:
if語句至多有1個else語句,else語句在所有的elseif語句之後。
If語句可以有若干個elseif語句,它們必須在else語句之前。
一旦其中一個else if語句檢測為true,其他的else if以及else語句都將跳過執行。
文法
if...else語法格式如下:
if(布爾表達式1){
//如果布爾表達式1的值為true執行代碼
}else if(布爾表達式2){
//如果布爾表達式2的值為true執行代碼
}else if(布爾表達式3){
//如果布爾表達式3的值為true執行代碼
}else {
//如果以上布爾表達式都不為true執行代碼
}
實例
public class Test { public static void main(String args[]){ int x = 30; if( x == 10 ){ System.out.print("Value of X is 10"); }else if( x == 20 ){ System.out.print("Value of X is 20"); }else if( x == 30 ){ System.out.print("Value of X is 30"); }else{ System.out. print("This is else statement"); } }}
以上代碼編譯運行結果如下:
Value of X is 30
嵌套的if…else語句
使用嵌套的if-else語句是合法的。也就是說你可以在另一個if或者elseif語句中使用if或者elseif語句。
語法嵌套的if…else語法格式如下:
if(布爾表達式1){
////如果布爾表達式1的值為true執行代碼
if(布爾表達式2){
////如果布爾表達式2的值為true執行代碼
}
}
你可以像if 語句一樣嵌套else if...else。
實例
public class Test { public static void main(String args[]){ int x = 30; int y = 10; if( x == 30 ){ if( y == 10 ){ System.out.print("X = 30 and Y = 10"); } } }}
以上代碼編譯運行結果如下:
X = 30 and Y = 10
複合if- else if else 語句小例子:
百分制轉換為等級制
public class IfElseDemo06{ public static void main(String[] args){ int a=85; //聲明int 型變量a 並賦值85 if (a>90){ //條件判斷System.out.println("成績" +a+",是A 等級"); }else if (a>80){ //條件判斷System.out.println("成績"+a+",是B 等級"); }else if (a>70) { //條件判斷System.out.println("成績"+a+",是C 等級"); }else if (a>60){ //條件判斷System.out.println("成績"+a+",是D 等級"); }else{ System.out.println("成績"+a+",是B 等級"); } }}
運行結果如圖所示。
成績85,是B等級
再來總結一下if-else語句的規則:
1)、if後的括號不能省略,括號裡表達式的值最終必須返回的是布爾值
2)、如果條件體內只有一條語句需要執行,那麼if後面的大括號可以省略,但這是一種極為不好的編程習慣。
3)、對於給定的if,else語句是可選的,else if 語句也是可選的
4)、else和else if同時出現時,else必須出現在else if 之後
5)、如果有多條else if語句同時出現,那麼如果有一條else if語句的表達式測試成功,那麼會忽略掉其他所有else if和else分支。
6)、如果出現多個if,只有一個else的情形,else子句歸屬於最內層的if語句