順序結構只能順序執行,不能進行判斷和選擇,因此需要分支結構。
Java有兩種分支結構:
一個if語句包含一個布爾表達式和一條或多條語句。
If語句的用語法如下:
if(布爾表達式) { //如果布爾表達式為true將執行的語句 }
如果布爾表達式的值為true,則執行if語句中的代碼塊。否則執行If語句塊后面的代碼。
public class Test { public static void main(String args[]){ int x = 10; if( x < 20 ){ System.out.print("這是 if 語句"); } } }
以上代碼編譯運行結果如下:
這是 if 語句
if語句后面可以跟else語句,當if語句的布爾表達式值為false時,else語句塊會被執行。
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語句后面可以跟elseif…else語句,這種語句可以檢測到多種可能的情況。
使用if,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或者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(expression){ case value : //語句 break; //可選 case value : //語句 break; //可選 //你可以有任意數量的case語句 default : //可選 //語句 }
switch語句有如下規則:
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); } }
以上代碼編譯運行結果如下:
$ java Test Well done Your grade is a C $