选择结构语句
选择结构:也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,
所以产生选择,按照不同的选择执行不同的代码。Java语言提供了两种选择结构语句:if语句和switch语句
一、if语句 if语句有三种语法格式。
(1)、if语句第一种语法格式(适合一种判断)
if(条件表达式){
语句体;
}
执行流程:判断条件表达式的结果,当为true时,{}中的执行语句体才会执行,否则不执行语句体。
|
1
2
3
4
5
6
|
1.//if语句第一种语法格式 int i=6; if(i%2==0){ System.out.println("if条件为true"); } System.out.println("over"); |
代码演示:
|
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"); |
代码演示:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
[/size][/font][font=微软雅黑][size=3]// if语句第三种语法格式 [/size][/font]
[font=微软雅黑][size=3]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("成绩输入有误!!!");
} |
二、switch语句
switch语句的语法格式:
switch(表达式){
case 目标值1:
执行语句1;
break;
case 目标值2:
执行语句2;
break;
......
case 目标值n:
执行语句n;
break;
default:
执行语句n+1;
break;
}
注意:
(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;当程序执行到了末尾处。
代码演示:
|
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的使用范围更广。