java基础05 选择结构

↘锁芯ラ 提交于 2020-03-24 12:53:31

选择结构

public class Demo01Change {

    public static void main(String[] args) {

        /**
         * 实现等量的转换
         */
        int a = 50; // 可乐
        int b = 100; // 雪碧

        // 创建空杯子
        int temp;
        // 01.把a的值给temp 把可乐转进了空杯子
        temp = a;
        // 02.把b的值给a
        a = b;
        // 03.把temp的值给b
        b = temp;
        System.out.println("a的值====" + a);
        System.out.println("b的值====" + b);

    }

}
1.等量的转换
public class Demo02if {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请您输入张浩的java成绩:");
        double javaScore = scanner.nextDouble();
        /** 01.使用三元表达式 解决问题
         * String result = (javaScore > 90) ? "奖励map4" : "没有奖励";
         * 
         * 02.使用 选择结构  if(表达式){ 
         *                输出语句
         *                   } 
         * 表达式:必须是boolean
         * 表达式为true  会执行 输出语句
         * 
         * {}只有一条输出语句的时候,可以省略!但是不建议省略
         */
        if (javaScore > 90) {
            System.out.println("奖励map4");
        }
    }

}
2.张浩的java成绩
public class Demo03if {

    public static void main(String[] args) {
        /**
         * 张浩的Java成绩大于98分,而且音乐成绩大于80分,老师会奖励他;
         * 或者Java成绩等于100分,音乐成绩大于70分,老师也会奖励他
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的java成绩");
        double javaScore = scanner.nextDouble();
        System.out.println("请输入您的音乐成绩");
        double musicScore = scanner.nextDouble();
        /**
         * 条件判断
         */

        if ((javaScore > 98 && musicScore > 80)
                || (javaScore == 100 && musicScore > 70)) {
            System.out.println("老师奖励您一个包包.....");
        }

    }
}
3.条件判断
public class Demo04logical {

    public static void main(String[] args) {
        /**
         * 条件判断
         * 逻辑运算符   (短路)
         *1. && 与,并且    表达式1 && 表达式2
         *         01.如果表达式1为false,则不会执行表达式2,返回false
         *         02. 如果表达式1为true,则继续执行表达式2
         *         03.两个表达式都为true!整体才返回true
         *         04.如果其中一个表达式为false,整体返回false
         *2. ||  或者
         *         01.如果其中一个表达式为true,整体返回true
         *         02.如果表达式1为true,则不会执行表达式2,返回true
         *3. !    非
         *if (!(5 > 4) && (6 < 9)) {
            System.out.println("进入了代码块");
          }
         */
        int a = 5;
        int b = 6;
        if (!(a++ == b) && (++a == b++)) {
            System.out.println("进入了代码块");
        }
        System.out.println(++a);
    }

}
4.逻辑运算符
public class Demo05ifelse {

    public static void main(String[] args) {
        /**
         * 
         * 三元表达式  可以 替换if  else
         * 
         * if(表达式){
         *    //表达式为true执行的代码块
         * }else{
         *   //表达式为false执行的代码块
         * }
         * 
         * 如果张浩Java考试成绩大于98分,老师就奖励他一个MP4,
         * 否则老师就罚他进行编码
         */
        int javaScore = 100; // 定义java成绩
        /**    if (javaScore > 98) {
                System.out.println("老师就奖励他一个MP4");
            }
            if (javaScore <= 98) {
                System.out.println("老师就罚他进行编码");
            }*/

        if (javaScore > 98) {
            System.out.println("老师就奖励他一个MP4");
        } else {
            System.out.println("老师就罚他进行编码");
        }

        System.out.println("谢谢您使用程序");
    }

}
5.if else
public class Demo06Buy {
    /**
     * 买彩票
    如果体彩中了500万,我买车、资助希望工程、去欧洲旅游
    如果没中,我买下一期体彩,继续烧高香
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您中奖的金额:");
        double money = scanner.nextDouble(); // 获取用户的中奖金额
        /**
         * 01.使用三元表达式
         */
        String result = (money > 500) ? "买车、资助希望工程、去欧洲旅游" : "买下一期体彩,继续烧高香";
        // System.out.println(result);
        /**
         * 02.使用if  else
         */
        if (money > 500) {
            System.out.println("买车、资助希望工程、去欧洲旅游");
        } else {
            System.out.println("买下一期体彩,继续烧高香");
        }

    }
}
6.买彩票
public class Demo07Random {

    public static void main(String[] args) {
        /**
         * 产生随机数
        从控制台接收一个4位会员号
        分解获得百位数
        判断是否是幸运会员
        
        Math.random():返回的是 0 - 1之间的小数!但是不包含1!
         */
        double random = Math.random();
        System.out.println("随机数为:" + random);
        // 怎么让随机数是 0-9之间的数字?
        System.out.println(random * 10);
        // double转换成 int 强制类型转换
        int result = (int) (random * 10);
        System.out.println(result);

        Scanner scanner = new Scanner(System.in);
        System.out.println("请您输入一个会员卡号:");
        int num = scanner.nextInt();
        // 怎么获取百位的数字
        int bai = num / 100 % 10;
        if (bai == result) {
            System.out.println("幸运用户");
        } else {
            System.out.println("欢迎下次光临!");
        }

    }
}
7.产生随机数
public class Demo08IflseIf {

    public static void main(String[] args) {
        /**
         * 成绩>=80 :良好 
        成绩>=60 :中等
        成绩<60   :差
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请您输入成绩:");
        double score = scanner.nextDouble();

        /**
         *   多个if 实现不了 我们想要的结果
        if (score >= 80) {
            System.out.println("良好");
        }
        if (score >= 60) {
            System.out.println("良好");
        }
        if (score < 60) {
            System.out.println("差");
        }
        */

        /**
         * 多重if
         * if(条件1){
         *    满足条件1 执行
         * }else  if(条件2){
         *    满足条件2 执行
         * }else  if(条件3){
         *    满足条件3 执行
         * }else  if(条件4){
         *    满足条件4 执行
         * }else{
         *     都不满足时 执行
         * }
         */
        if (score >= 80) {
            System.out.println("良好");
        } else if (score >= 60) {
            System.out.println("中等");
        } else {
            System.out.println("差");
        }

    }

}
8.IfElseIf
public class Demo09ByCar {

    public static void main(String[] args) {
        /**
         * 我想买车,买什么车决定于我在银行有多少存款
        如果我的存款超过500万,我就买凯迪拉克
        否则,如果我的存款超过100万,我就买帕萨特
        否则, 如果我的存款超过50万,我就买依兰特
        否则, 如果我的存款超过10万,我就买奥托
        否则, 如果我的存款10万以下 ,我买捷安特
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请您输入存款金额:");
        double money = scanner.nextDouble();
        if (money >= 500) {
            System.out.println("买凯迪拉克");
        } else if (money >= 100) {
            System.out.println("买帕萨特");
        } else if (money >= 50) {
            System.out.println("买依兰特");
        } else if (money >= 10) {
            System.out.println("买奥托");
        } else if (money < 10) {
            System.out.println("买捷安特");
        }

        /**
         *    只要满足其中一个条件  则后续判断的代码不会执行!
        int a = 5;
        if (a++ > 5) {
            System.out.println(a);
        } else if (++a == 6) {
            System.out.println(a);
        } else if (a++ <= 7) {
            System.out.println(a);
        }
         */

    }

}
9.多重IF
public class Demo10 {

    public static void main(String[] args) {
        /**
         * 需求:
         * 学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,
         * 根据性别分别进入男子组和女子组
         * 
         * 分析:
         * 判断是否能够进入决赛  
            在确定进入决赛的情况下,判断是进入男子组,还是进入女子组
            
            嵌套if:在一个条件判断的代码块中,又写了一个或者多个条件判断
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请您输入赛跑的成绩(秒):");
        double score = scanner.nextDouble();
        if (score <= 10) { // 进入了决赛
            System.out.println("进入了决赛!请您输入性别:");
            String sex = scanner.next();
            /**
             * 根据性别分组
             * equals:判断两个字符串内容是否一致
             */
            if (sex.equals("男")) {
                System.out.println("恭喜您进入了男子组!");
                System.out.println("请您输入身高:");
                double height = scanner.nextDouble();
                if (height > 190) {
                    System.out.println("巨人组");
                } else {
                    System.out.println("矮人组");
                }
            } else {
                System.out.println("恭喜您进入了女子组!");
            }
        } else {
            System.out.println("淘汰.....");
        }

    }
}
10.百米赛跑
public class Demo11 {

    public static void main(String[] args) {
        /**
         * 需求:
         * 普通顾客购物满100元    9折
            会员购物    8折
            会员购物满200元    7.5折
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请您输入是否是会员(Y/N):");
        String answer = scanner.next();
        System.out.println("请您输入购物金额:");
        double money = scanner.nextDouble();
        double pay = 0; // 用户最后需要支付的金额

        // 判断用户是否是会员 equalsIgnoreCase忽略大小写比较
        if (answer.equalsIgnoreCase("y")) {
            System.out.println("您是会员");
            // 判断折扣
            if (money >= 200) {
                pay = money * 0.75;
            } else {
                pay = money * 0.8;
            }
        } else {// 普通用户
            System.out.println("您是普通用户");
            if (money >= 100) {
                pay = money * 0.9;
            } else {
                pay = money;
            }
        }

        System.out.println("您的实际支付金额是:" + pay);

    }
}
11.购物折扣
public class Demo12 {

    public static void main(String[] args) {
        /**
         * 需求:
         *  会员积分                      折  扣
            x < 2000         9折
            2000 ≤ x < 4000     8折
            4000 ≤ x < 8000     7折
            x ≥ 8000         6折
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请您输入会员积分:");
        int custCount = scanner.nextInt();
        // 定义一个变量来接收 折扣
        double discount;
        if (custCount < 2000) {
            discount = 0.9;
        } else if (2000 <= custCount && custCount < 4000) {
            discount = 0.8;
        } else if (4000 <= custCount && custCount < 8000) {
            discount = 0.7;
        } else { // 大于8000
            discount = 0.6;
        }
        System.out.println("您享受的折扣是:" + discount);

    }
}
12.积分折扣

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!