选择结构语句
选择结构:也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,
因此产生选择,按照不一样的选择执行不一样的代码。Java语言提供了两种选择结构语句:if语句和switch语句
1、if语句 if语句有三种语法格式。
(1)、if语句第一种语法格式(适合一种判断)
if(条件表达式){
语句体;
}
执行流程:判断条件表达式的结果,当为true时,{}中的执行语句体才会执行,不然不执行语句体。string
注意:
条件表达式的结果必须是布尔类型;if若是控制的语句只有一条,能够不写中括号{},直接跟语句体,但若是跟多条语句,大括号不能省略,
建议两种状况下都写。
代码示例演示:
[Java] 纯文本查看 复制代码
?
1
2
3
4
5
6
1.//if语句第一种语法格式
int i=6;
if(i%2==0){
System.out.println("if条件为true");
}
System.out.println("over");
(2)、if语句第二种语法格式(适合两种判断)
if(条件表达式){
语句体1;
}else{
语句体2;
}
执行流程:一样先判断条件表达式的结果,若是为true,则执行语句体1,为false则执行语句体2.it
代码演示:效率
[Java] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
8
//if语句第二种语法格式
int j=-2;
if(j>0){
System.out.println(j+"为正数");
}else{
System.out.println(j+"为负数");
}
System.out.println("over");
语法
(3)、if语句第三种语法格式(适合多种判断)
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}
...
else if(条件表达式n){
语句体n;
}else{
语句体n+1;
}
执行流程:首先判断条件表达式1的结果,若是为true,则执行语句体1,为false则继续判断条件表达式2的结果,若是为true,则执行语句体2,
为false则继续判断下一个条件表达式的结果,以此类推,若是全部的判断条件都为false,则意味着全部的条件均未获得知足,则执行语句体n+1。程序
代码演示:static
[Java] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
/size
font=微软雅黑// if语句第三种语法格式 /size
font=微软雅黑int scores = 88;
if (scores >= 90) {
System.out.println("您的成绩被评定为A级");
} else if (scores >= 80) {
System.out.println("您的成绩被评定为B级");
} else if (scores >= 70) {
System.out.println("您的成绩被评定为C级");
} else if (scores >= 60) {
System.out.println("您的成绩被评定为D级");
} else if (scores >= 0) {
System.out.println("您的成绩被评定为E级");
} else {
System.out.println("成绩输入有误!!!");
}语言
2、switch语句
switch语句的语法格式:
switch(表达式){
case 目标值1:
执行语句1;
break;
case 目标值2:
执行语句2;
break;
......
case 目标值n:
执行语句n;
break;
default:
执行语句n+1;
break;
}co
执行流程:switch语句将表达式的值与每一个case中的目标值进行匹配,若是找到了匹配的值,会执行对应的case后的语句,遇到break就会结束。
若是没找到任何匹配的值,就会执行default后的语句,而后程序结束。cas
注意:
(1)、表达式接收的值类型:在switch语句中的表达式只能是byte、short、char、int类型的值,若是传入其余类型的值,程序就会报错。
(JDK5.0引入enum枚举和JDK7.0接收String类型)。
(2)、case后面跟的是要和表达式进行比较的值,语句体部分能够是一条或多条语句,break表示中断,结束的意思,能够结束switch语句,
default语句表示全部状况都不匹配的时候,就执行该处的内容,和if语句的else类似。default能够省略,但通常不建议,
default能够放在switch语句的任何位置,通常放在最后位置,放在最后位置时紧跟它的break能够省略。
(3)、switch结束的状况:当程序执行过程当中遇到了break;当程序执行到了末尾处。枚举
代码演示:
[Java] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void main(String[] args) {
int month = 12;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month + "月有31天!");
break;
case 2:
System.out.println(month + "月有28天!");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month + "月有30天!");
break;
default:
System.out.println("不存在该月!");
break;
}
}
注意:if和switch语句很像,那么在具体场景下如何合理选择使用哪一种语句呢?(1)、能用switch语句实现的均可以用if语句替换,而且if语句的条件表达式没有任何限制,可是switch语句条件表达式的类型只能是byte、short、int、char这四种类型,以及后加入的枚举和string,而且要注意break的使用。(2)、 If语句通常用于分支语句比较少的结构,而switch用于分支较多的结构。(3)、若是判断具体数值很少,并且符合byte、short、int、char这四种类型虽然两个语句均可以使用,但建议使用switch语句,由于效率稍高。其余状况,对区间判断,对结果为boolean型的判断,使用if,if的使用范围更广。