3选择结构

3、选择结构

3、1基本的选择结构

public static void main(String[] args) {
        Scanner input = new Scanner(System.ln);
        System.out.println("请录入成绩");
        int iNow = input.nextInt();
        if(iNow>90){
            System.out.println("成绩不错,奖励");
        }
    }

3、2使用逻辑运算符的选择结构

        Scanner input = new Scanner(System.ln);
        System.out.println("请录入Java成绩");
        int iJava = input.nextInt();
        System.out.println("请录入音乐成绩");
        int iMusic = input.nextInt();
//        如果Java成绩大于90,且音乐成绩大于80,
//        或者,Java等于100且音乐大于70
        if(iJava>90&&iMusic>80||iJava==100&&iMusic>70) {
            System.out.println("成绩不错,奖励");
        }

3、3如果-否则(if-else)在这里插入图片描述

       Scanner input = new Scanner(System.in);
        System.out.println("录入成绩:");
        int iNow = input.nextInt();
        if(iNow>90){
            System.out.println("成绩不错奖励");
        }else{
            System.out.println("惩罚");
        }
//        使用三目运算符改写
        String flag = iNow>90?"成绩不错奖励":"惩罚";

3、4如果-否则 如果-否则(if-else if-else)

Scanner input = new Scanner(System.in);
        System.out.println("录入成绩");
        int iNow = input.nextInt();
        String flag="";
        if(iNow>=80){
            flag="良好";
        }else if(iNow>=60){
            flag="中等";
        }else {
            flag="差";
        }
//        也可以用三目运算符,但是不推荐在三目运算符中嵌套三目运算符,会使得代码不好阅读
        flag=iNow>=80?"良好":iNow>=60?"中等":"差";
        System.out.println("你成绩为:"+iNow+"等第为:"+flag);
    }

3、5多重条件嵌套

在这里插入图片描述

        String sName = "";
        String sSex = "";
        double dTime = 0.0;
        Scanner input = new Scanner(System.in);
        System.out.println("名字");
        sName = input.next();
        System.out.println("性别");
        sSex = input.next();
        System.out.println("时间");
        dTime = input.nextDouble();
        String sReult = sName+"很遗憾,你没进10s,无缘决赛";
        if(dTime<10){
            sReult = sName+"恭喜,决赛";
            if ("男".equals(sSex)){
                sReult+="男子决赛";
            }else if ("女".equals(sSex)){
                sReult+="女子决赛";
            }else{
                sReult+="未知组决赛";
            }
        }
        System.out.println(sReult);

4、字符串的比较

字符串比较我们不使用==,而是使用equals,==比较的是基本数据类型,比如int、double等

//        某些情况下有可能某个对象为空
        String sName = null;
//        当使用null对象去调用方法时,会出现Null Pointer Exception(空指针异常)
//        所以我们在执行字符串的equals方法时,我们肯定要将不会空的结果放在前面
//        比如一个字面量,和一个变量,那么肯定是字面量在前
//        如果一个自己赋值的A和一个从某个方法获得的B,那肯定A放在前面,笔记自己赋值的肯定不会为空
        System.out.println("123".equals(sName));
        System.out.println(sName.equals("123"));

5、switch

Scanner input = new Scanner(System.in);
        System.out.println("比赛名次:");
        int iNow = input.nextInt();
        switch (iNow){
//            只有所有的case都匹配不上,才进入default
//            default虽然位置没有要求,但习惯性加在所有case的后面
            default:
                System.out.println("no名次,no奖励");
                break;//如果break不存在,则会继续执行他后面case的内容,加不加break,看具体情况
            case 1:
                System.out.println("一等奖夏令营");
                break;
            case 2:
                System.out.println("二等奖笔记本");
                break;
            case 3:
                System.out.println("U盘");
                break;
        }

举一个不需要break的例子

Scanner input = new Scanner(System.in);
        System.out.println("请问现在几点,请输入20-23");
        int iNow = input.nextInt();
        int iTemp=0;
        switch (iNow){
            case 20:
                iTemp++;
            case 21:
                iTemp++;
            case  22:
                iTemp++;
            case  23: 
                iTemp++;   
        }
        System.out.println("再过"+iTemp+"小时,就24点"); 
    }

6、局部变量

    public static void main(String[] args) {
        int i = 100;
        if (i>10){
//            此时的j是if代码块中的局部变量,无法在if模块以外使用(作用范围在-行)
            int j = 2;
            System.out.println(j);
        }
//        i是在main方法中声明的,所以所有main方法中的代码都可以使用或者修改i变量
        System.out.println(i);
//        因为j在if模块中被声明,所以只能作用的if模块中,下面会由于变量j未声明而报错
        j=100;
        System.out.println(j);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值