Java有几种类型的选择语句:单分支if语句、双分支if-else语句、嵌套if语句、多分支if-else语句、switch 语句和条件表达式。
单分支if语句
语法结构:
-
if(布尔表达式){ 执行语句 ; }
如果花括号内只有一条语句,就可以省略花括号,如下,两个语句是等价的。
if(i>0){
System.out.println("hello java");
}
if(i>0)
System.out.println("hello java");
双分支if-else语句
语法结构:
if(布尔表达式){
布尔表达式为真时执行语句 A;
}else{
布尔表达式为假时执行语句D
}
例如下面的代码:
int number=100;
if(number%10==0){
System.out.println("You win");
}else{
System.out.println("You lose");
}
若number%10==0为真时,执行打印输出You win,否则打印执行输出You lose。这里执行语句各位一条,也可以省略花括号。
嵌套if语句、多分支if-else语句
if语句可以在另外一个if语句中,形成嵌套的if语句。
if或if-else语句中的语句可以是任意合法的Java语句,甚至可以是其他的if或if-else语句。内层if语句称为是嵌套在外层if语句里的。内层if语句还可以包含其他的if语句;事实上,对嵌套的深度没有限制。它的语法结构如下:
if(条件1){
执行语句A
if(条件2){
执行语句C
}else{
执行语句D
}
}else{
执行语句B
}
例如下面的代码就是一个嵌套的if语句:
int number=100;
if(number%10==0){
System.out.println("You win");
if(number==100){
System.out.println("The number is 100");
}
}else{
System.out.println("You lose");
}
语句if(number==100){}嵌套在语句if(number%10==0){}中,嵌套的if语句可实现多重选择。
执行结果是打印输出You win和The number is 100。
switch语句
switch语句基于变量或者表达式的值来执行语句。
语法结构为:
switch(参数){
case 选项1:
执行语句1;
break;
case 选项2:
执行语句2;
break;
...
default:
执行语句n
break;
}
下面的代码就是一个switch语句的例子:
``java
switch(number){
case "1":
System.out.println("Spring");
break;
case "2":
System.out.println("Summber");
break;
case "3":
System.out.println("Automn");
break;
case "4":
System.out.println("Winter");
break;
default:
System.out.println("Input error");
break;
}
number是对case对应的值则输出对应的句子,并执行break跳出选择,如果没有执行default语句并跳出选择。
switch语句遵从下述规则:
①switch表达式必须能计算出-个char、byte、 short、 int 或者String型值,并且必须总是要用括号括住。
②当switch表达式的值与case语可的值相匹配时,执行从该case开始的语可,直到遇到一个break语句或到达该switch语句的结束。
③默认情况(default)是可选的,当没有一个给出的case与switch表达式匹配时,用来执行该操作。
④关键字break是可选的。break语句会立即终止switch语句。
对比switch语句和if语句:
- switch只能对单一的值进行判断 不能判断区间值
if可以对单一值进行判读也可以区间值
所以在平时的编程中if-else语句选择语句用的较多。