09多重及嵌套选择与switch
if...else...
if(A) elseB为对立事件,非此即彼
多重if
多重选择
if(布尔条件){
...//如果条件为真,则执行
}else if{
}else if{
}else if{
}else {
}
分析时,可以借用数轴
多重if,编写顺序:严格优秀判断(大于和大于等于,数字越大,越优先判断; 小于和小于等于,数字越小越优先判断)
例子
//大于90 优秀,大于等于80 良好,大于等于60 及格,否则不及格
int score = 88;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
//错误写法 用数轴可以解答错误原因
// int score = 88 ;
// if(score >=60){
// System.out.println("及格");
// }else if (score >= 80 ){//空集
// System.out.println("良好");
// }else if (score >= 90 ){
// System.out.println("优秀");
// }else{
// System.out.println("不及格");
// }
//测试人员,对项目进行测试,bug小于3 A,小于5 B,小于10 C,大于等于10 D
int bug = 2;
if (bug <3) {
System.out.println("A");
} else if (bug <5) {
System.out.println("B");
} else if (bug <10) {
System.out.println("C");
} else {
System.out.println("D");
}
嵌套if
if(布尔条件){
...//如果条件为真,则执行
}if(){
}else {
}
区分:多重if 和嵌套if :判断是否是同一件事情,如果是同一件用多重;否则(不是同一件事情),用嵌套
示例
//10秒以内,进入决赛;男,男子组决赛;女,女子组决赛
double sec =8.8;
char sex = '女';
if(sec<=10){
if (sex == '男'){
System.out.println("进入男子组决赛");
}else {
System.out.println("进入女子组决赛");
}
}else {
System.out.println("淘汰");
}
switch选择
switch会用rank和所有case匹配,如果匹配成功,则执行相应case后的语句,直到break结束。
在switch中,如果rank和所有case都不匹配,则执行defau
int rank = 2;
switch ((rank)){
case 1:
System.out.println("笔记本电脑");
break;
case 2:
System.out.println("u盘");
break;
case 3:
System.out.println("夏令营");
break;
default://else...
System.out.println("不奖励");
break;
}
swhich后的支持表达式类型:int short byte char String 枚举。
case后面的值必须是常量,并且case值不能重复。
default可以省略。
swtich只有遇到break和最后}才结束。
break一般不建议省略,但各别情况可以省略。
省略示例:
int month = 3;
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("是大月");
break;
default:
System.out.println("不是大月");
}
多重if。。。和swicth区别?
如果判断是区间值,多重if(swicth无法实现);如果是离散值/单点值,是swicth

浙公网安备 33010602011771号