Java 分支結(jié)構(gòu)
順序結(jié)構(gòu)只能順序執(zhí)行,不能進行判斷和選擇,因此需要分支結(jié)構(gòu)。
Java有兩種分支結(jié)構(gòu):
if語句
switch語句
if語句
一個if語句包含一個布爾表達式和一條或多條語句。
語法
If語句的用語法如下:
if(布爾表達式) { //如果布爾表達式為true將執(zhí)行的語句 }
如果布爾表達式的值為true,則執(zhí)行if語句中的代碼塊。否則執(zhí)行If語句塊后面的代碼。
public class Test { public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("這是 if 語句"); } } }
以上代碼編譯運行結(jié)果如下:
這是 if 語句
if...else語句
if語句后面可以跟else語句,當if語句的布爾表達式值為false時,else語句塊會被執(zhí)行。
語法
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 語句"); } } }
以上代碼編譯運行結(jié)果如下:
這是 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語句都將跳過執(zhí)行。
語法
if...else語法格式如下:
if(布爾表達式 1){ //如果布爾表達式 1的值為true執(zhí)行代碼 }else if(布爾表達式 2){ //如果布爾表達式 2的值為true執(zhí)行代碼 }else if(布爾表達式 3){ //如果布爾表達式 3的值為true執(zhí)行代碼 }else { //如果以上布爾表達式都不為true執(zhí)行代碼 }
實例
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"); } } }
以上代碼編譯運行結(jié)果如下:
Value of X is 30
嵌套的if…else語句
使用嵌套的if-else語句是合法的。也就是說你可以在另一個if或者elseif語句中使用if或者elseif語句。
語法
嵌套的if…else語法格式如下:
if(布爾表達式 1){ ////如果布爾表達式 1的值為true執(zhí)行代碼 if(布爾表達式 2){ ////如果布爾表達式 2的值為true執(zhí)行代碼 } }
你可以像 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"); } } } }
以上代碼編譯運行結(jié)果如下:
X = 30 and Y = 10
switch語句
switch語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。
語法
switch語法格式如下:
switch(expression){ case value : //語句 break; //可選 case value : //語句 break; //可選 //你可以有任意數(shù)量的case語句 default : //可選 //語句 }
switch語句有如下規(guī)則:
switch語句中的變量類型只能為byte、short、int或者char。
switch語句可以擁有多個case語句。每個case后面跟一個要比較的值和冒號。
case語句中的值的數(shù)據(jù)類型必須與變量的數(shù)據(jù)類型相同,而且只能是常量或者字面常量。
當變量的值與case語句的值相等時,那么case語句之后的語句開始執(zhí)行,直到break語句出現(xiàn)才會跳出switch語句。3
當遇到break語句時,switch語句終止。程序跳轉(zhuǎn)到switch語句后面的語句執(zhí)行。case語句不必須要包含break語句。如果沒有break語句出現(xiàn),程序會繼續(xù)執(zhí)行下一條case語句,直到出現(xiàn)break語句。
switch語句可以包含一個default分支,該分支必須是switch語句的最后一個分支。default在沒有case語句的值和變量值相等的時候執(zhí)行。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("Excellent!"); break; case 'B' : case 'C' : System.out.println("Well done"); break; case 'D' : System.out.println("You passed"); case 'F' : System.out.println("Better try again"); break; default : System.out.println("Invalid grade"); } System.out.println("Your grade is " + grade); } }
以上代碼編譯運行結(jié)果如下:
Well done Your grade is C