Java中Switch语句解析

目录

前言

一、switch语法结构

1、语句结构

 2、执行流程

二、 语句格式说明

三、switch扩展知识


前言

如果你前面已经学过if语句的话,你会发现if语句在多重嵌套下,会显得非常凌乱,代码的可读性也非常差。所以switch语句也可以实现if语句相同的功能,只不过在多重判断下,运用switch语句会是代码更加简洁。

一、switch语法结构

1、语句结构

switch语句也是一种常用的选择结构语句,作用类似if语句的多分支功能,但switch只能进行等值问题的分流,它由一个switch表达式和case关键字组成。其语法结构如:

switch //表达式
{  
    case 值1:语句1;
            break;
    case 值2:语句2;
            break;
    .......
        
    casse 值n:语句n;
            break;
    default: 语句n+1;
            break;
}

 2、执行流程

  • 首先计算机表达式的值。
  • 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
  • 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句,然后结束整个switch语句。

俗话说“实践是验证真理的唯一标准”,看下以下案例你会更加明白,

public class switchdemo {
    public static void main(String[] args) {
        //number: 1 2 3 4 5

        //定义变量想要的数字
        String number ="3";

        //利用switch和想要的数字进行匹配
        switch (number) {      //表达式 ()
            case "1":
            System.out.println("1");   //输出
            break;        //结束
            
            case "2":
                System.out.println("2");
                break;
                
            case "3":
                System.out.println("3");
                break;
                
            case "4":
                System.out.println("4");
                break;
                
            case "5":
                System.out.println("5");
                break;
                
            default:
                System.out.println("输入有误,请重新输入");
                break;
        }
    }
}

通过这个小小的案例你看明白了嘛?还不是很理解是吧!没关系,小编在为你解析下。首先你先定好一个变量你想要的数字, String number ="3";    然后用switch语句,接下来case就会跟要和表达式进行比较的值,匹配到你所定义的值就显示,如果都匹配不到你定义的值default就反馈"输入有误,请重新输入"

二、 语句格式说明

  • switch:启用当前switch语句;
  • 表达式:一般接受具体的变量(将要匹配的值)取值为byte、short、int、char。JDK5以后是可以枚举,DJK7以后可以是String。
  • case:后面跟的是要和表达式进行比较的值(被匹配的值)。
  • break:表示中断,结束的意思,用来结束switch语句。
  • default:表达所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
  • case:后面的值只是字面量,不能是变量。case给出的值不允许重复。

三、switch扩展知识

  • default的位置和省略:
  1. 位置:default不一定是要卸载最下面的,我们可以写在任意位置,只不过是习惯会写在最下面
  2. 省略:default可以省略,语法没有问题,但是不建议省略;
  • case穿透:
  1. 就是语句中没有写break导致的;
  • 执行流程:
  1. 首先还是会拿着小括号中的表达式的值跟下面每一个case进行匹配;
  2. 如果匹配上了,就会执行对应的语句,如果此时发现了break,那么结束整个switch语句;
  3. 如果没有发现break,那么程序会继续执行下一个case的语句,一直遇到break或者大括号为止;
  • switch和if第三个种格式各自的使用场景
  1. if的第三种格式:一般用于对范围的判断
  2. switch:把有限个数据一一列举出来,让我们任选其一
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Grey_hat_cmd

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

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

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

打赏作者

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

抵扣说明:

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

余额充值