选择结构-Java学习日记

/*
        选择结构:
            也被称为分支结构。
            选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
        Java语言提供了两种选择结构语句:
            if语句
                语句定义格式1:
                    if(关系表达式){
                        语句体;
                    }
                    代码2;

                 执行流程:
                    1、先判断关系表达式中的结果值,注意无论这里的关系表达式是否复杂,结果一定要是boolean类型
                    2、如果关系表达式的结果是true的话,就进入大括号内,执行语句体。
                    3、如果关系表达式的结果是false的话,就不进入大括号内,也就是不执行语句体。继续执行if后面的代码2,直到程序结束。

 */
//需求:判断键盘录入的数据是否小于100
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int number = sc.nextInt();
if(number<100){
    System.out.println("数字"+number+"是小于100的");
}

/*
        if语句编写的注意事项:
            1、关系表达式中的结果一定要严格遵循结果是boolean类型的规则
            2、如果if语句体是由一条语句组成的时候,可以省略大括号,否则不能省略,如果省略,默认只拿语句体中的第一行作为if语句体
                推荐,永远不要省略大括号!!!!!
            3、如果在小括号后面,大括号前面加上了分号,其实表示这个if语句有一个空语句体
                后面大括号中的代码就当作一个普通的代码块去执行
 */
//需求:判断键盘录入的数据是否大于50且小于100
//创建键盘录入对象
Scanner sc = new Scanner(System.in);

System.out.println("请输入一个数字:");
int number = sc.nextInt();

//java不支持连续比较 50<number<100
if(number>50 & number<100){
    System.out.println("数字"+number+"是小于100的");
    System.out.println("这是在if语句中的吗?");
}

---------------------------------------------
/*
        if语句定义格式2:
            if(关系表达式){
                语句体1;
            }else{
                语句体2;
            }

       执行流程:
        1、先判断关系表达式中的结果值,注意无论这里的关系表达式是否复杂,结果一定要是boolean类型
        2、如果关系表达式的值是true的话,执行语句体1,语句体2不会执行
        3、如果关系表达式的值是false的话,执行语句体2,不执行语句体1
        4、无论关系表达式中的值是true还是false,只执行if和else中语句的其中一个。
 */
 //创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入你是男生还是女生:(1:男生   2:女生)");
int number = sc.nextInt();
if(number==1){
    System.out.println("你是男生,请走男厕所");
}else {
    System.out.println("你是女生,请走女厕所");
}

/*
        if语句定义格式3:
            if(关系表达式1){
                语句体1;
            }else if(关系表达式2){
                语句体2;
            }else if(关系表达式3){
                语句体3;
            }
            ...
            else{
                语句体n+1;
            }

       执行流程:
        1、首先判断关系表达式1中的值,如果是true,执行语句体1,执行完语句体1后结束整个if语句
        2、如果关系表达式1的值是false的话,判断下一个关系表达式2,如果是true重复步骤1,如果是false一次类推
        3、如果所有的关系表达式都不满足的话,最后执行else中的语句体n+1

        需求:
            通过把学生考试成绩分等级来引出if语句的第三种格式
            90-100 优秀
            80-90  好
            70-80  良
            60-70  及格
            60一下   不及格

        注意:
            为了程序与的严谨性,推荐给出一个默认的处理,当所有的关系表达式都是false的时候,就会执行这里的代码。
 */
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个学生的成绩:");
int score = sc.nextInt();
if(score>=90 & score<=100){
    System.out.println("优秀");
}else if(score>=80 & score<90){
    System.out.println("好");
}else if(score>=70 & score<80){
    System.out.println("良");
}else if(score>=60 & score<70){
    System.out.println("及格");
}else if(score>=0 & score<60){
    System.out.println("不及格");
}else {
    System.out.println("输入的数据有误!");
}
/*
        选择结构:
            也被称为分支结构。
            选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
        Java语言提供了两种选择结构语句:
            if语句
                语句定义格式1:
                    if(关系表达式){
                        语句体;
                    }
                    代码2;

                 执行流程:
                    1、先判断关系表达式中的结果值,注意无论这里的关系表达式是否复杂,结果一定要是boolean类型
                    2、如果关系表达式的结果是true的话,就进入大括号内,执行语句体。
                    3、如果关系表达式的结果是false的话,就不进入大括号内,也就是不执行语句体。继续执行if后面的代码2,直到程序结束。

 */
//需求:判断键盘录入的数据是否小于100
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int number = sc.nextInt();
if(number<100){
    System.out.println("数字"+number+"是小于100的");
}

/*
        if语句编写的注意事项:
            1、关系表达式中的结果一定要严格遵循结果是boolean类型的规则
            2、如果if语句体是由一条语句组成的时候,可以省略大括号,否则不能省略,如果省略,默认只拿语句体中的第一行作为if语句体
                推荐,永远不要省略大括号!!!!!
            3、如果在小括号后面,大括号前面加上了分号,其实表示这个if语句有一个空语句体
                后面大括号中的代码就当作一个普通的代码块去执行
 */
//需求:判断键盘录入的数据是否大于50且小于100
//创建键盘录入对象
Scanner sc = new Scanner(System.in);

System.out.println("请输入一个数字:");
int number = sc.nextInt();

//java不支持连续比较 50<number<100
if(number>50 & number<100){
    System.out.println("数字"+number+"是小于100的");
    System.out.println("这是在if语句中的吗?");
}

---------------------------------------------
/*
        if语句定义格式2:
            if(关系表达式){
                语句体1;
            }else{
                语句体2;
            }

       执行流程:
        1、先判断关系表达式中的结果值,注意无论这里的关系表达式是否复杂,结果一定要是boolean类型
        2、如果关系表达式的值是true的话,执行语句体1,语句体2不会执行
        3、如果关系表达式的值是false的话,执行语句体2,不执行语句体1
        4、无论关系表达式中的值是true还是false,只执行if和else中语句的其中一个。
 */
 //创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入你是男生还是女生:(1:男生   2:女生)");
int number = sc.nextInt();
if(number==1){
    System.out.println("你是男生,请走男厕所");
}else {
    System.out.println("你是女生,请走女厕所");
}

/*
        if语句定义格式3:
            if(关系表达式1){
                语句体1;
            }else if(关系表达式2){
                语句体2;
            }else if(关系表达式3){
                语句体3;
            }
            ...
            else{
                语句体n+1;
            }

       执行流程:
        1、首先判断关系表达式1中的值,如果是true,执行语句体1,执行完语句体1后结束整个if语句
        2、如果关系表达式1的值是false的话,判断下一个关系表达式2,如果是true重复步骤1,如果是false一次类推
        3、如果所有的关系表达式都不满足的话,最后执行else中的语句体n+1

        需求:
            通过把学生考试成绩分等级来引出if语句的第三种格式
            90-100 优秀
            80-90  好
            70-80  良
            60-70  及格
            60一下   不及格

        注意:
            为了程序与的严谨性,推荐给出一个默认的处理,当所有的关系表达式都是false的时候,就会执行这里的代码。
 */
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个学生的成绩:");
int score = sc.nextInt();
if(score>=90 & score<=100){
    System.out.println("优秀");
}else if(score>=80 & score<90){
    System.out.println("好");
}else if(score>=70 & score<80){
    System.out.println("良");
}else if(score>=60 & score<70){
    System.out.println("及格");
}else if(score>=0 & score<60){
    System.out.println("不及格");
}else {
    System.out.println("输入的数据有误!");
}
/*
    选择结构第二种:switch
        语句定义格式:
            switch(表达式){
                case 常量值1:
                    语句体1;
                    break;
                case 常量值2:
                    语句体2;
                    break;
                case 常量值3:
                    语句体3;
                    break;
                ...
                default:
                    语句体n+1;
                    break;
            }

        名词解释:
            1、switch:表示它是java中的一个选择结构语句
            2、表达式:是进行选择匹配的内容,表达式具有一个结果值,而java中switch的表达式的值可以是byte,short,int,char
                JDK1.5之后可以是枚举
                JDK1.7之后可以是String
            3、case:匹配的内容,后面跟上与表达式结果做比较的值,如果匹配到,就执行对应的case中的语句体。
            4、常量值:这里只能是一个常量值,不可以是变量!!!!!!!
            5、语句体:当有匹配的case的时候,执行对应的语句体。
                (思考一个问题,switch语句和if语句一样吗?只能执行一个case中的语句体吗?如果不是,是由什么来控制的?)
            6、break:
                一般情况下,每一个语句体执行完后,都会跟上一个break,表示跳出整个switch选择
                (思考:break能不能不写,不写会发生什么情况?)
            7、default:
                如果所有的case都没有被匹配到的话,最终会执行default中的语句体内容。
                (思考:default能不能不写?如果写上,一定要放在某尾吗?)

        执行流程:*****
            1、首先会计算表达式中的结果值
            2、拿着这个结果值,与case后面的常量值自上而下的做匹配,如果匹配到一样的值,就会执行对应case中的语句体内容
            3、执行完语句体后,会紧接着执行后面的break语句,执行完break语句后,会结束整个switch选择
            4、如果所有的case都没有匹配到对应的值后,会执行default中的语句体内容,执行完后执行break,跳出整个switch选择

       注意事项:
            1、case后面匹配的常量值不能重复

 */
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//可乐 3,农夫山泉 2,元气森林 5,阿萨姆奶茶 4,红牛 6
//键盘录入字符串,表示你想要买的饮料
System.out.println("请输入你想要购买的饮料:");
String drink = sc.next();

switch (drink){
    case "可乐":
        System.out.println("欢迎您购买可乐,共消费3元,欢迎下次光临!");
        break;
    case "农夫山泉":
        System.out.println("欢迎您购买农夫山泉,共消费2元,欢迎下次光临!");
        break;
    case "元气森林":
        System.out.println("欢迎您购买元气森林,共消费5元,欢迎下次光临!");
        break;
    case "阿萨姆奶茶":
        System.out.println("欢迎您购买阿萨姆奶茶,共消费4元,欢迎下次光临!");
        break;
    case "红牛":
        System.out.println("欢迎您购买红牛,共消费6元,欢迎下次光临!");
        break;
    default:
        System.out.println("您想要的"+drink+"饮料暂时缺货,明天再来看看");
        break;
}
/*
        switch语句使用的注意事项:
            1、case后面只能是常量值,并且类型只能是byte,short,int,char,枚举,String当中的其中的一种
                并且多个case后面的值不能重复。
            2、break可以省略吗?
                可以省略,如果省略可能会发生选择穿透,case匹配穿透。
                如果匹配到的case中的语句体省略了break语句,那么再执行完当前case中的语句体后,会执行下面的语句体,直到遇到
                break,结束switch选择。
            3、default语句可以省略吗?
                可以省略,但是一般情况下,不推荐省略。当匹配的值是固定的几个的时候,可以省略default
            4、default语句一定要放在某尾吗?
                不一定,经过测试发现,可以放在任意位置,default的执行是严格遵循在所有的case都不匹配的情况下,才会执行default

            swicth结束条件:
                1、遇到break语句
                2、正常执行结束
 */
 /*
        控制流程语句:
            break;
            continue;
            return;

            break:使用场景:
                在选择结构switch语句中
                在循环语句中
                离开使用场景的存在是没有意义的

 */

 

posted @ 2022-04-01 21:41  荒野拾粪人  阅读(133)  评论(0编辑  收藏  举报