Java 分支結構 - if...else
/switch
順序結構只能順序執行,不能進行判斷和選擇,所以須要分支結構。java
Java有兩種分支結構:express
if
語句switch
語句
if
語句
一個if
語句包含一個布爾表達式和一條或多條語句。url
語法spa
if
語句的用語法以下:.net
if(布爾表達式) { //若是布爾表達式爲true將執行的語句 }
若是布爾表達式的值爲true
,則執行if
語句中的代碼塊。不然執行if
語句塊後面的代碼。code
public class Test { public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("這是 if 語句"); } } }
以上代碼編譯運行結果以下:get
這是 if 語句
if...else語句
if
語句後面能夠跟else
語句,當if
語句的布爾表達式值爲false
時,else
語句塊會被執行。it
語法io
if…else
的用法以下:編譯
if(布爾表達式){ //若是布爾表達式的值爲true }else{ //若是布爾表達式的值爲false }
實例
public class Test { public static void main(String args[]){ int x = 30; if( x < 20 ){ System.out.print("這是 if 語句"); }else{ System.out.print("這是 else 語句"); } } }
以上代碼編譯運行結果以下:
這是 else 語句
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("這是 else 語句"); } } }
以上代碼編譯運行結果以下:
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
switch
語句
switch
語句判斷一個變量與一系列值中某個值是否相等,每一個值稱爲一個分支。
語法
switch
語法格式以下:
switch(expression){ case value : //語句 break; //可選 case value : //語句 break; //可選 //你能夠有任意數量的case語句 default : //可選 //語句 }
switch
語句有以下規則:
switch
語句中的變量類型只能爲byte
、short
、int
或者char
。switch
語句能夠擁有多個case
語句。每一個case
後面跟一個要比較的值和冒號。case
語句中的值的數據類型必須與變量的數據類型相同,並且只能是常量或者字面常量。- 當變量的值與
case
語句的值相等時,那麼case
語句以後的語句開始執行,直到break
語句出現纔會跳出switch
語句。 - 當遇到
break
語句時,switch
語句終止。程序跳轉到switch
語句後面的語句執行。case
語句沒必要需要包含break
語句。若是沒有break
語句出現,程序會繼續執行下一條case
語句,直到出現break
語句。 switch
語句能夠包含一個default
分支,該分支必須是switch
語句的最後一個分支。default
在沒有case
語句的值和變量值相等的時候執行。default
分支不須要break
語句。
實例
public class Test { public static void main(String args[]){ //char grade = args[0].charAt(0); char grade = 'C'; switch(grade) { case 'A' : System.out.println("優秀"); break; case 'B' : case 'C' : System.out.println("良好"); break; case 'D' : System.out.println("及格"); case 'F' : System.out.println("你須要繼續努力"); break; default : System.out.println("無效等級"); } System.out.println("你的等級是 " + grade); } }
以上代碼編譯運行結果以下:
良好 你的等級是 C