选择结构
1、 if选择结构
1.1、if单选结构
语法:
if(条件表达式){
// 当条件表达式返回的结果为true时,执行的代码
}
1.2、if多选结构
语法:
if(条件表达式){
// 当条件表达式返回的结果为true时,执行的代码
}
else{
// 当条件表达式返回的结果为false时,执行的代码
}
1.3、if多选结构
语法:
if(条件表达式1){
// 当条件表达式1返回的结果为true时,执行的代码
}
else if(条件表达式2){
// 当条件表达式2返回的结果为true时,执行的代码
}
...
else{
// 当条件表达式返回的结果为false时,执行的代码
}
注意:
1、条件表达式返回的数据类型必须是boolean类型。
2、在if多选结构中有且只能执行其中一个代码块中的代码。
例如:判断一个学生的成绩,如果90(包含)100(包含)为优秀,70(包含)90为良好,60(包含)~70为及格,60分以下输出不及格。
// 1.通过Scanner获得学生成绩
Scanner input = new Scanner(System.in);
System.out.print("请输入学生成绩:");
double score = input.nextDouble();
// 2.根据学生成绩,输出对应的等级。
if (score < 0 || score > 100) {
System.out.println("成绩输入有误,请重新输入!");
}
// 能执行到此处,证明学生成绩在[0, 100]区间
else if (score >= 90) {
System.out.println("优秀");
} else if (score >= 70) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
2、 switch选择结构
语法:
switch(表达式){
case 常量1:
// 当“常量1”和表达式的结果匹配时,需要执行的代码
break;
case 常量2:
// 当“常量2”和表达式的结果匹配时,需要执行的代码
break;
case 常量3:
// 当“常量3”和表达式的结果匹配时,需要执行的代码
break;
...
default:
// 当以上case都不匹配的时候,需要执行的代码
break;
}
注意:
1、case 关键字后面必须是常量,不能为变量。
2、case 后面常量类型必须与“表达式”的数据类型保持一致。
3、break 关键字可以省略,但是省略后,会发生穿透,直到遇到下一个break才会截止穿透,并跳出switch选择结构
例如:判断一个学生的成绩,如果90(包含)100(包含)为优秀,70(包含)90为良好,60(包含)~70为及格,60分以下输出不及格。
System.out.println("请输入成绩:");
Scanner input = new Scanner(System.in);
double sum = input.nextDouble();
if (sum >100 ||sum < 0) {
System.out.println("请输入正确的成绩!");
}
else {
int num = (int)(sum/10);
switch (num) {
case 9:
case 10:
System.out.println("优秀!");
break;
case 8:
case 7:
System.out.println("良好!");
break;
case 6:
System.out.println("及格!");
break;
default:
System.out.println("不及格!");
break;
}
}