Java流程控制之Switch多选择结构,理论+源码

   大家好,我来分享一下Java流程控制当中的Switch多选择结构

看我之前的博客,你就会知道,之前的if 判断处理的是区间的问题,
而我们今天要讲的Switch多选择结构处理的是等量的问题

这是Switch语法:

在这里插入图片描述

下面直接写实例

package struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        //case 穿透     匹配一个具体的值
        char grade = 'C';
        switch (grade) {
            case 'A':
                System.out.println("优秀");
                break;    //每写一个,都尽可能的写break 。不然的话,他会把每一个输出
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("及格");
                break;
            case 'E':
                System.out.println("再接再厉");
                break;
            case 'D':
                System.out.println("挂科");
                break;
            default:
                System.out.println("未知等级");
        }
    }
}

在这里插入图片描述

下面直接敲实际的代码

package struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        //case 穿透     匹配一个具体的值
        char grade = 'C';      //定义初始值变量grade=C
        switch (grade) {         
            case 'A':          //C与A比较,C不是A,所以不是结果 
                System.out.println("优秀");        //在控制台上输出优秀
                break;    //每写一个,都尽可能的写break 。不然的话,他会把每一个输出
            case 'B':          //B与A比较,B不是A,所以不是结果 
                System.out.println("良好");     
                break;
            case 'C':       //C与C比较,C就是C,所以就是结果
                System.out.println("及格");
                break;     //结束
            case 'E':         //E与A比较,E不是A,所以不是结果 
                System.out.println("再接再厉");
                break;
            case 'D':     //D与A比较,D不是A,所以不是结果 
                System.out.println("挂科");
                break;
            default:       //如果以上的所有条件,都不能和原始值相等的情况
                System.out.println("未知等级");      //控制台输出内容“未知等级”
        }
    }
}

看运行结果:

在这里插入图片描述

下面演示不写break的结果

代码如下:

package struct;

public class SwitchDemo01 {
    public static void main(String[] args) {
        //case 穿透     匹配一个具体的值
        char grade = 'C';
        switch (grade) {
            case 'A':
                System.out.println("优秀");
                    //每写一个,都尽可能的写break 。不然的话,他会把每一个输出
            case 'B':
                System.out.println("良好");

            case 'C':
                System.out.println("及格");

            case 'E':
                System.out.println("再接再厉");

            case 'D':
                System.out.println("挂科");
                
            default:
                System.out.println("未知等级");
        }
    }
}

运行结果如下:

在这里插入图片描述
所以,一定要将break 加上 //这是一个好习惯!

在写一个案例:

public class SwitchDemo02 {
    public static void main(String[] args) {
        //jdk7的新特性   表达式的结果可以为字符串
        //字符的本质还是数字


        //反编译    java========class(字节码文件)--------反编译(idea)

        String name = "帅哥";    //以string数据类型,自定义变量为name,给他赋值 “帅哥”
        switch (name) {            //比较name  这个变量的赋值
            case "帅哥":             //拿帅哥跟帅哥比较   ,两个值相等
                System.out.println("帅哥");    //输出信息“帅哥”
                break;          //结束
            case "小哥哥":       //拿小哥哥跟帅哥比较   ,两个值不相等,所以不行
                System.out.println("小哥哥");         
                break;
            default:      //如果以上的所有条件,都不能和原始值相等的情况
                System.out.println("hello");      //控制台输出hello

运行情况:

在这里插入图片描述

下面演示一下default 下面符合输入的情况

看代码:

package struct;

public class SwitchDemo02 {
    public static void main(String[] args) {
        //jdk7的新特性   表达式的结果可以为字符串
        //字符的本质还是数字


        //反编译    java========class(字节码文件)--------反编译(idea)

        String name = "姐姐";
        switch (name) {
            case "帅哥":
                System.out.println("帅哥");
                break;
            case "小哥哥":
                System.out.println("小哥哥");
                break;
            default:
                System.out.println("hello");        //上面的两种情况都不与初始变量值相等,所以最后控制台输出的结果是default后面的hello
               break;
        }
    }
}

执行结果如下:

在这里插入图片描述

Switch语句运行流程:

首先要定义变量,给他赋值,‘然后程序拿这个赋值,与每一个case后面的常量比较,如果两者一致,则输出case 后对应的信息,如果不一样,则比较下一个,如果实在没有,就把default 后面对应的信息输出来

关于Java Switch 语句
我在讲几点忠告:
1.这里的default,case ,Switch,break都是Java关键字
2. Switch :是开关的意思,这个开关就是Switch关键字后面小括号里表达式的值,jdk1.7之后,Switch语句后面小括号里可以是int short byte char 枚举类型,string类型表达式

2.case : case意思是“情况,情形” ,case后面可以是int short byte char 枚举类型 ,string 类型,通常是一个固定的值,case块可以有很多个,顺序可以改变,但是每一个case 后面的常量的值必须不一样。

3.表示“默认”,就是其它的条件都不满足的时候。default后面要紧跟冒号。default和case块的先后顺序可以变,不影响程序执行的结果,通常情况下,default块放在末尾,也可以省略
break: 表示“停止”,即跳出当前结构
好了,有关于Java Switch 选择结构,就讲到这里,谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思诚代码块

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值