服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java中switch语句的用法介绍

java中switch语句的用法介绍

2023-06-23 01:02未知服务器之家 Java教程

本篇文章和大家了解一下java中switch语句的用法介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 一. switch分支结构 1. 简介 switch结合case,能够判断一个变量或表达式与一系列值中的某个值是否相等,这

本篇文章和大家了解一下java中switch语句的用法介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

一. switch分支结构

1. 简介

switch结合case,能够判断一个变量或表达式与一系列值中的某个值是否相等,这里的每个值都被称为一个分支。switch语句在执行时,会先进行值的匹配,匹配成功时会进入到对应case语句。再根据是否有 break语句,判断是否继续输出,或是跳出当前switch判断。

2. 基本语法

在使用switch之前,首先我们得记住它的基本语法结构,其基本语法格式如下:

switch(值){ 
    case 值1: 
        //switch中的值与值1相等时执行的代码 
      break; //可选
    case 值2: 
        //switch中的值与值2相等时执行的代码 
      break; //可选
    case 值3: 
        //switch中的值与值3相等时执行的代码 
      break; //可选
    case 值4: 
        //switch中的值与值4相等时执行的代码 
      break; //可选
    default: 
        //switch中的值与以上所有值都不相等时执行的代码 
      break; //可选
}

那么这个语法具体有哪些要求呢?请继续往下看。

3. 语法规则(重点)

根据上面介绍的switch语法结构,再给大家详细说一下switch的语法规则和要求。

  • switch(值)语句中的”值“,支持的类型有如下几类:


    • 整型:byte、short、int 、char及其对应的包装类;

    • 枚举类型,从JDK 5开始支持(后面会详细讲解枚举类型);

    • String类型,从JDK 7开始支持,同时case标签后的值必须是字符串常量或字面量。

  • switch后面可以有多个 case 语句,每个 case 后都要跟一个待比较的值和冒号。

  • case标签后面值的数据类型必须与switch(值)中的数据类型相同,且只能是常量或者字面常量。

  • 当switch(值)的值与 case语句中的值相等时,case标签后面的语句开始执行,遇到break标签时停止执行switch语句。

  • case语句中不一定非要带有break语句。如果case后没有 break 语句,程序会继续执行下一个case 语句,直到出现 break 语句,这种现象叫做”case穿透“。

  • switch语句中可以包含一个default默认分支,该分支一般是 switch 语句的最后一个分支,当switch的值和case语句的值不相等时执行。default 分支中不用带有break 语句,另外该分支可以放在任何位置,但建议写在最后面。

4. 执行逻辑

根据上面的语法规则,我们可以结合下图来理解switch语句的执行逻辑。switch的执行逻辑,其实就相当于是把多种情况分别列出,根据我们输入的值来判断符合哪种情况。符合哪个情况,就进入到对应的分支里面去执行,整体的执行逻辑就是这样的,如下图所示:

java中switch语句的用法介绍

  • if和switch都是Java里的分支选择语句,它俩都属于条件分支语句;

  • 很多时候,if和swich可以实现的效果类似。

  • 2. 不同点

    • switch结构只能处理等值条件判断的情况,且条件必须是整型、枚举变量或字符型变量;

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

    • if比switch应用范围更广、更灵活。if可以实现的条件判断,switch不一定能够实现;switch可以实现的条件判断,if肯定可以实现。

    • if 在应用中更为常见,但switch的结构更清晰。

    • switch使用查找表比对的方式,使得case的条件必须是连续的常量,if语句则没有这些限制。

    • 一般情况下,switch比if-else效率更高。 因为switch内部使用了Binary Tree算法,不管有多少个case,都只计算一次值,直接跳转,不需逐个比较查询,除非是if-else的第一个条件就为true。

    • switch的效率其实与分支数无关。只有当分支比较少时,if语句的效率才比switch高,因为switch有跳转表。当分支较多时,推荐使用switch语句。

    以上就是java中switch语句的用法介绍的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注***行业资讯频道哦!

    延伸 · 阅读

    精彩推荐