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会更简洁明了。