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执行代码
}
实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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" ); } } } |
以上代码编译运行结果如下:
1
|
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。
实例
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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" ); } } } } |
以上代码编译运行结果如下:
1
|
X = 30 and Y = 10 |
复合 if- else if – else 语句小例子:
百分制转换为等级制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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 等级" ); } } } |
运行结果如图所示。
1
|
成绩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语句