Java 选择结构
一、if选择结构
1.1 单分支if选择结构
1.1.1 语法结构
if(条件){
//代码块
}
1.1.2 执行规律
如果条件为true,执行{}中的代码块,执行完后,继续往下执行。
{}后面的代码
如果条件为false,执行{}后面的代码。
1.1.3 注意事项
条件不管多么简单还是多么复杂,都只能为布尔值。
public static void main(String[] args) {
//张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?
//声明一个变量javaScore用来存储张浩的Java成绩
double javaScore = 9;
//根据张浩的java成绩判断他能不能拿到奖励
if(javaScore>=90){
System.out.println("奖励一部iPhone6S");
}
System.out.println("继续努力");
}
1.2 双分支if选择结构
1.2.1 语法结构
if(条件){
//代码块1;
}else{
//代码块2;
}
1.2.2 执行规律
如果条件为true,执行代码块1,执行完之后,执行if-else结构后面的代码。
如果条件为false,执行else{}里面的代码块2,执行完之后,执行if-else结构后面的代码。
1.2.3 注意事项
条件为布尔值。
如果代码块1只有一条语句,代码块1所在的{}可以省略,但不建议。
public static void main(String[] args) {
/*
* 如果张浩Java考试成绩大于等于90分,老师就奖励他一个iPhone6s
* 否则老师就罚他蹲马步
*/
double javaScore = 9;
if(javaScore>=90){
System.out.println("奖励iPhone6s");
}else{
System.out.println("蹲马步");
}
System.out.println("继续努力");
}
1.3 多重分支if选择结构
1.3.1 语法结构
if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else if(条件3){
//代码块3
}…
}else{
//代码块n
}
1.3.2 执行规律
(1)先判断条件1,如果条件1为true,执行代码块1,执行完之后结束整个if-else-if结构,执行该结构后面的代码。
(2)如果条件1为false,继续往下判断条件2,如果条件2为true, 执行代码块2,执行完之后结束整个if-else-if结构,执行该结构后面的代码。
(3)如果条件2为false,继续往下判断条件3,如果条件3为true,执行代码块3,执行完之后结束整个if-else-if结构,执行该结构后面的代码。
(4)…
(5)如果所有的条件都为false,执行else里面的代码块n。
1.3.3 注意事项
(1)条件为布尔值。
(2)else if可以有1个、2个、多个。
(3)else也可以省略,如果所有的条件不成立,也没有else,那么整个if-else-if结构不执行。
(4)多重if选择结构中各个条件的顺序不可以任意排列,要求从上往下由严格到宽松。
public static void main(String[] args) {
/*
* 对学员的考试成绩评测
* 成绩>=80 :良好
* 成绩>=60 :中等
* 成绩<60 :差
*/
double javaScore = 95;
if(javaScore>=80){
System.out.println("良好");
}else if(javaScore>=60){
System.out.println("中等");
}else{
System.out.println("差");
}
// if(javaScore>=60){
// System.out.println("中等");
// }else if(javaScore>=80){
// System.out.println("良好");
// }else{
// System.out.println("差");
// }
System.out.println("继续努力");
}
二、switch选择结构
1. 语法结构
switch(表达式){
case 常量值1:
//代码语句;
break;
case 常量值2:
//代码语句;
break;
case 常量值3:
//代码语句;
break;
…
default:
//代码语句;
break;
}
2. 执行规律
根据表达式的值,来与case后面的常量值进行匹配。
匹配上哪个常量值,就执行该case里面的代码语句,代码语句执行完,执行break,退出整个Switch选择结构,执行Switch选择结构后面的代码。
如果表达式的值与所有的case常量值不匹配,则执行default里面的代码语句,执行完执行break语句,退出整个Switch选择结构。
3. 注意事项
(1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK7及以后版本可以使用)
(2)case常量值不能相同
(3)default语句可以在任意位置,一般来说写在最后,也可以省略不写
(4)break的作用是结束整个Switch选择结构,如果不写,会造成“case穿透”现象,此现象可以合理使用
public static void main(String[] args) {
// 输出每一个月份属于哪一个季节
// 12/1/2 冬季 3/4/5春季 6/7/8夏季 9/10/11秋季
int month = 4;
switch (month) {
case 12:
// System.out.println("冬季");
// break;
case 1:
// System.out.println("冬季");
// break;
case 2:
System.out.println("冬季");
break;
case 3:
// System.out.println("春季");
// break;
case 4:
// System.out.println("春季");
// break;
case 5:
System.out.println("春季");
break;
case 6:
// System.out.println("夏季");
// break;
case 7:
// System.out.println("夏季");
// break;
case 8:
System.out.println("夏季");
break;
case 9:
// System.out.println("秋季");
// break;
case 10:
// System.out.println("秋季");
// break;
case 11:
System.out.println("秋季");
break;
}
}