Java选择结构

本文详细介绍了Java中的流程控制,包括if选择结构的基本用法、if-else双分支结构、嵌套if和使用复杂条件的if选择结构。通过实例展示了如何根据成绩判断奖励条件,以及如何实现多条件判断。同时,提到了switch选择结构的使用场景和注意事项,以及与多重if的区别。
摘要由CSDN通过智能技术生成

一、掌握if分支结构

        1、什么是流程控制

                流程控制用来控制程序中各个语句的执行顺序

        之前写的都是一行一行代码依次执行的,今天我们就来学习一下选择结构,循环结构我们后期会讲。

        2、基本的if选择结构

                if选择结构是根据条件判断结果选择不同的处理

                        条件结果必须是布尔值

/*
        * 单分支if选择结构:
        *   语法结构:
        *       if(条件){
        *           //代码块
        *       }
        *   执行规律:
        *       如果条件为true,执行{}力的代码块,执行完代码块之后继续执行()后面的代码
        *       如果条件为false,则跳过if选择结构,执行()后面的代码
        *   注意:
        *       条件不管写的多么的简单还是多么的复杂,最终结果应该是布尔值,要么为true要么为false
        *
        * */

        例如:张浩Java成绩大于90分,老师奖励他iPhone13,该怎么做呢?

        

package cn.bdqn.demo01;

import java.util.Scanner;

public class IfDemo01 {
    public static void main(String[] args) {

        //张浩Java成绩大于90分,老师奖励他iPhone13

        //创建Scanner类
        Scanner sc = new Scanner(System.in);

        //获得成绩
        System.out.println("请输入张浩的Java成绩:");
        double score = sc.nextDouble();

        //张浩获得奖励的条件:Java成绩需要大于90

        if (score>90){
            System.out.println("你太棒了");
            System.out.println("老师奖励一部iPhone13");
            System.out.println("继续努力....");
        }

        System.out.println("代码执行完毕。");
    }
}

        使用复杂条件的if选择结构

        例如:张浩Java成绩大于90分,并且音乐成绩大于80分时,或者Java成绩等于100分,音乐成绩大于70时,老师奖励他,该怎么做呢?

package cn.bdqn.demo01;

import java.util.Scanner;

public class IfDemo02 {

    public static void main(String[] args) {

        /*
        * 张浩Java成绩大于90分,并且音乐成绩大于80分时,或者Java成绩等于100分,音乐成绩大于70时,老师奖励他
        * */

        //创建Scanner类对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入张浩的Java成绩:");
        double javaScore = sc.nextDouble();
        System.out.println("请输入张浩的音乐成绩:");
        double musicScore = sc.nextDouble();

        if ((javaScore>90 && musicScore>80) || (javaScore==100 && musicScore>70)){
            System.out.println("你怎么就这么厉害呢!");
            System.out.println("老师奖励iPhone14");
            System.out.println("继续努力");
        }

        System.out.println("程序执行完毕");

    }

}

         结合运算符的优先级编写条件

                最高的优先级:()

                最低的优先级:=

                优先级:!> 算术运算符 > 关系运算符 > && > ||

                复杂条件使用括号提高可读性

        3、使用if-else选择结构

/*
        *   双分支if—else结构:
        *       语法结构:
        *           if(条件){
        *               //代码块1
        *           }else{
        *               //代码块2
        *           }
        *       执行规律:
        *           如果条件为true,执行代码块1,执行玩代码块1后,结束整个if-else结构。继续往后执行if-else结构后面的代码
        *           如果条件为false,执行代码块2,执行完代码块2后,结束整个if-else结构,继续往后执行if-else结构后面的代码
        *
        */

        例如:如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone13,

否则老师就罚他蹲马步

package cn.bdqn.demo02;

import java.util.Scanner;

public class IfElseDemo01 {

    public static void main(String[] args) {

        /*
        * 如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone6s 否则老师就罚他蹲马步
        * */

        //创建Scanner类对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入张浩Java成绩:");
        double javaScore = sc.nextDouble();

        //张浩Java成绩满足条件,奖励iPhone6s
        if(javaScore>90){
            System.out.println("奖励iphone6s");
        }

        //张浩Java成绩不满足条件,蹲马步
        if (javaScore<=90){
            System.out.println("罚蹲马步");
        }

        System.out.println("程序执行完毕");

    }

}

        4、嵌套if选择结构

                嵌套if控制语句可以通过外层语句和内层语句的协作,增强程序的灵活性

                例如:对学员的考试成绩评测成绩>=80:良好,成绩>=60:中等,成绩<60:差

package cn.bdqn.demo03;

import java.util.Scanner;

public class IfElseIfDemo01 {

    public static void main(String[] args) {
        /*
        *
        * 对学员的考试成绩评测
        *   成绩>=80:良好
        *   成绩>=60:中等
        *   成绩<60:差
        *
        */

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        double score = sc.nextDouble();

        if (score>=80){
            System.out.println("良好");
        } else if (score>=60) {
            System.out.println("中等");
        }else {
            System.out.println("差");
        }

        System.out.println("程序执行完毕");

    }

}

        例如:使用if选择结构判断一个整数,属于哪个范围:大于0;小于0;等于0

package cn.bdqn.demo03;

import java.util.Scanner;

public class CeShi01 {

    public static void main(String[] args) {

        //创建Scanner类对象
        Scanner sc = new Scanner(System.in);

        /*
        * 使用if选择结构判断一个整数,属于哪个范围:大于0;小于0;等于0
        * */
        System.out.println("请输入一个整数:");
        int a = sc.nextInt();

        if (a>0){
            System.out.println("你输入的整数大于0");
        } else if (a<0) {
            System.out.println("你输入的整数小于0");
        }else {
            System.out.println("你输入的整数等于0");
        }

    }

}

        随机数       

        产生随机数 [0~9)的方法如下:

        int random = (int)(Math.random)()*10);

        产生随机数[num1,num2)的方法如下:

int random = (int)(Math.random)()*(num2-num1)+num1);

         

        例如:抽奖规则:会员的百位数字等于产生的随机数字即为幸运会员号

package cn.bdqn.demo01;

import java.util.Scanner;

public class MathRandomDemo02 {

    public static void main(String[] args) {
        /*
        * 抽奖规则:会员的百位数字等于产生的随机数字即为幸运会员号
        * */

        //创建一个Scanner类对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入你的四位会员卡号:");
        int cardId = sc.nextInt();
        System.out.println("你的会员卡号是:" + cardId);

        //获取会员百位数字
        int baiwei = cardId/100%10;
        System.out.println("百位数字:"+baiwei);

        //获取[0,10)之间的随机数
        int num = (int)(Math.random()*10);
        System.out.println("随机数字:" + num);

        //判断是否是幸运会员
        if (baiwei == num){
            System.out.println("恭喜你,成为幸运会员");
        }else {
            System.out.println("很遗憾,没能成为幸运会员");
        }
        System.out.println("程序执行完毕");
    }
}

掌握switch分支结构

        switch选择结构语法:

/*
         * switch选择结构:
         * 	语法结构:
         * 		switch(表达式){
         * 			case 常量1:
         * 				//语句1
         * 				break;
         * 			case 常量2:
         * 				//语句2
         * 				break;
         * 			case 常量3:
         * 				//语句3
         * 				break;
         * 			..........
         * 			case 常量n:
         * 				//语句n
         * 				break;
         * 			default:
         * 				//语句m;
         * 				break;
         * 		}
         * 	执行规律:
         * 		根据表达式的值去匹配case后面的常量值,匹配上了就执行对应的语句,执行完对应语句后,执行break,结束整个switch结构,继续往下执行switch选择结构之后的代码
         * 		如果表达式的值与所有的常量值都不匹配,就执行default里面的语句,执行完以后执行break退出整个switch选择结构、
         */

        注意:

                1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK1.7及以后支持)

                2)case后面的常量值不能相同

                3)default语句可以省略不写。如果写上表示表达式的值与所有常量值不匹配,就执行default里的语句。default语句可以写在任意位置,一般写在switch的末尾位置

                4)switch选择结构只能处理等值判断的情况

                5)break的作用是结束整个switch选择结构,如果缺少,代码会继续向下执行,执行下一个case里的语句,这种现象称之为“case穿透”现象。case穿透现象可以合理使用

     

          例如:

                韩嫣参加计算机编程大赛

                如果第一名,参加麻省理工大学组织的一个月夏令营

                如果第二名,奖励惠普笔记本电脑一部

                如果第三名,奖励移动硬盘一个
                否则,不给任何奖励

package cn.bdqn.demo02;

import java.util.Scanner;

public class Demo01 {

    public static void main(String[] args) {
        /*
        * 韩嫣参加计算机编程大赛
        * 如果第一名,参加麻省理工大学组织的一个月夏令营
        * 如果第二名,奖励惠普笔记本电脑一部
        * 如果第三名,奖励移动硬盘一个
        * 否则,不给任何奖励
        * */

        int mingCi = 2;
        if (mingCi == 1){
            System.out.println("参加麻省理工大学组织的一个月夏令营");
        }else if (mingCi == 2){
            System.out.println("奖励惠普笔记本电脑一部");
        } else if (mingCi == 3) {
            System.out.println("奖励移动硬盘一个");
        }else {
            System.out.println("不给任何奖励");
        }

        System.out.println("程序执行完毕");
    }
}

        来个case穿透现象的使用:

                输入月份,输出季节

                12 1 2 冬季 3 4 5 春季 6 7 8 夏季 9 10 11 秋季

package cn.bdqn.demo02;

public class Demo04 {

    public static void main(String[] args) {

        // case穿透现象的使用
        /*
         * 输入月份,输出季节
         *
         * 12 1 2 冬季 3 4 5 春季 6 7 8 夏季 9 10 11 秋季
         */

        int month = 3;

        switch (month) {
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
        }

    }

}

switch与多重if

        相同点

                都是用来处理多分支条件的结构

        不同点

                switch选择结构

                        只能处理等值条件判断的情况

                多重if选择结构

                        没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况

总结

        if选择结构,包括以下形式

                基本f选择结构:可以处理单一或组合条件的情况
                if-else选择结构:可以处理简单的条件分支情况
                多重f选择结构:可以处理分段的条件分支情况
                嵌套f选择结构:可以处理复杂的条件分支情况
        switch选择结构
                多重分支并且条件判断是等值判断的情况

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值