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

posted @ 2023-04-13 21:38  tin88eaby  阅读(66)  评论(0)    收藏  举报