详解Java编程中if...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("This is else statement"); } } }
以上代码编译运行结果如下:
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
复合 if- else if – else 语句小例子:
百分制转换为等级制
public class IfElseDemo06{ public static void main(String[] args){ int a=85; //声明int 型变量a 并赋值85 if (a>90){ //条件判断 System.out.println("成绩"+a+",是A 等级"); }else if (a>80){ //条件判断 System.out.println("成绩"+a+",是B 等级"); }else if (a>70){ //条件判断 System.out.println("成绩"+a+",是C 等级"); }else if (a>60){ //条件判断 System.out.println("成绩"+a+",是D 等级"); }else{ System.out.println("成绩"+a+",是B 等级"); } } }
运行结果如图所示。
成绩85,是B等级
再来总结一下if-else语句的规则:
1)、if后的括号不能省略,括号里表达式的值最终必须返回的是布尔值
2)、如果条件体内只有一条语句需要执行,那么if后面的大括号可以省略,但这是一种极为不好的编程习惯。
3)、对于给定的if,else语句是可选的,else if 语句也是可选的
4)、else和else if同时出现时,else必须出现在else if 之后
5)、如果有多条else if语句同时出现,那么如果有一条else if语句的表达式测试成功,那么会忽略掉其他所有else if和else分支。
6)、如果出现多个if,只有一个else的情形,else子句归属于最内层的if语句