Java/分支結構
外觀
< Java
在程序中,分支結構做出判斷並決定進入哪個分支。
順序結構只能順序執行,不能進行判斷和選擇,因此需要分支結構。分支結構有以下幾種,雖然用法不同,但本質是相通的。
if...else
[編輯]最基本的形式是if-else
public class Exercise {
public static void main(String args[]){
//分支开始
if( 2 > 3 ) //判断条件
System.out.println("是真的"); //若真则执行if后面的语句
else
System.out.println("是假的"); //若假则执行else后面的语句
//分支结束
System.out.println("结束"); //分支完成后,继续执行
}
}
也可以不用else,僅用if;else不執行任何操作:
public class Exercise {
public static void main(String args[]){
//分支开始
if( 2 > 3 ) //判断条件
System.out.println("是真的"); //若真则执行if后面的语句
//分支结束
System.out.println("结束"); //分支完成后,继续执行
}
}
亦可以嵌套,分支之後再分支:
public class Exercise {
public static void main(String args[]){
int num = 9;
if( num >= 0 ) //判断正负
if( num % 2 == 0 ) //判断奇偶
System.out.println( num + "是正偶数或0");
else
System.out.println( num + "是正奇数");
else
if( num % 2 == 0 ) //判断奇偶
System.out.println( num + "是负偶数");
else
System.out.println( num + "是负奇数");
}
}
比較常見的一種嵌套形式是if...else if...else if...else...:
public class Exercise {
public static void main(String args[]){
int A = 1, B = 2, C = 3, D = 4;
if( D < A )
System.out.println("D不是最大值");
else if( D < B )
System.out.println("D不是最大值");
else if( D < C )
System.out.println("D不是最大值");
else
System.out.println("D是最大值");
}
}
switch
[編輯]switch語句就像一個多向開關,可以根據判斷條件選擇任意一個通路。
switch的條件必須是byte、int、short或者char。
常用結構如下實例:
public class Exercise {
public static void main(String args[]){
char favour = 'r';
switch(favour){
case 'r' : System.out.println("我喜欢红色");break;
case 'b' : System.out.println("我喜欢蓝色");break;
case 'g' : System.out.println("我喜欢绿色");break;
case 'y' : System.out.println("我喜欢黄色");break;
case 'w' : System.out.println("我喜欢白色");break;
default : System.out.println("我都不喜欢");break;
}
}
}
執行結果為
我喜欢红色
請注意「break」,如果末尾沒有break,那麼程序將會從符合條件的那一行繼續執行接下來的所有行。也就是說,case是一個起始標記,而停止標誌則是break。在第一個符合條件的case和下一個break之間的內容將被執行。
若沒有break:
public class Exercise {
public static void main(String args[]){
char favour = 'y';
switch(favour){
case 'r' : System.out.println("我喜欢红色");
case 'b' : System.out.println("我喜欢蓝色");
case 'g' : System.out.println("我喜欢绿色");
case 'y' : System.out.println("我喜欢黄色");
case 'w' : System.out.println("我喜欢白色");
default : System.out.println("我都不喜欢");
}
}
}
執行結果為
我喜欢黄色 我喜欢白色 我都不喜欢
若沒有符合條件的case,則執行default。
其實,凡是能用switch實現的功能,用if-else也能實現。但在一些情況中,使用switch會更簡潔明了。