java switch基础介绍及具体使用方法

java switch基础介绍及具体使用方法switch的case语句可以处理int,short,byte,char类型的值,但是不能处理long,String等类型。javaswitch基础语法witch(表达式){case表达式常量1:语句1;break;case表达式常量2:语句2;break;……case表达式常量n:语句n;break;[default:语句n+1;]…

大家好,又见面了,我是你们的朋友全栈君。

switch的case语句可以处理int,short,byte,char类型的值,但是不能处理long,String等类型。

java switch基础语法

witch(表达式){ 
case 表达式常量1:语句1breakcase 表达式常量2:语句2break; 
...... 
case 表达式常量n:语句n; 
break; 
[default:语句n+1;] 
} 

其中,一个case表达式常量成为标号,代表一个case分支的入口。switch语句在运行时首先计算switch圆括号中“表达式”的值,这个值必须是整型或字符型的,同时后面各个case表达式常量的值的类型应与switch圆括号中“表达式”的值类型一致。一个case语句代表一个制定操作,然后转向结构出口。default子句是可选的,当表达式的值与case表达式常量的值都不匹配时,就运行default子句,转向结构出口。

java里switch的执行顺序
switch表达式的值决定选择哪个case分支,如果找不到相应的分支,就直接从”default” 开始输出。
当程序执行一条case语句后,因为例子中的case分支中没有break 和return语句,所以程序会执行紧接于其后的语句。
这里写图片描述

这里写图片描述

这里写图片描述

java switch语句注意事项
case B:C;case是常量表达式,也就是说B的取值只能是常量(需要定义一个final型的常量,后面会详细介绍原因)或者int、byte、short、char(比如1、2、3、200000000000(注意了这是整型)),如果你需要在此处写一个表达式或者变量,那么就要加上单引号; case后的语句可以不用大括号,就是C不需要用大括号包裹着;

default就是如果没有符合的case就执行它,default并不是必须的。

实例:java 用switch语句解决月薪范围问题

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

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

Java中switch和if语句的区别

switch和if语句都是Java的选择语句,这两种语句都是允许在程序运行时控制程序的执行过程。

switch和if-else相比,由于使用了Binary Tree算法,绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true。 

编译器编译switch与编译if…else…不同。不管有多少case,都直接跳转,不需逐个比较查询。 
 
相比于if-else结构,switch的效率绝对是要高很多的,但是switch使用查找表的方式决定了case的条件必须是一个连续的常量。而if-else则可以灵活的多。
  
switch效率高,从汇编代码可以看出来。switch只计算一次值,然后都是test。
  
switch的效率与分支数无关。当只有分支比较少的时候,if效率比switch高(因为switch有跳转表)。分支比较多,那当然是使用switch。

本文编辑整理来源于w3cschool

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156967.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 几个vbs代码

    几个vbs代码使用方法:新建一个txt文档,将上面的代码复制到txt,然后将文档的后缀名改成vbs。鼠标双击即可执行。第一个:msgbox”做我女朋友好吗”,vbQuestion,”在吗”msgbox(“房产写你名字”)msgbox(“保大”)msgbox(“我妈会游泳”)dimjdowhilej<1SelectCasemsgbox(“做我女朋友好吗”,68,”请郑重的回答我”)Case6j=1Case7msgbox(“再给你一次机会”)endSelect

    2022年5月9日
    98
  • windows密码获取 — LC5暴力激活成功教程Hash密码「建议收藏」

    windows密码获取 — LC5暴力激活成功教程Hash密码「建议收藏」​错,可以改,那,错过呢。。。—-网易云热评一、首先用QuarksPwDump导出hash值并存储到1.txtquarkspwdump–dump-hash-local–output1.txt二、下载并安装LC5并注册1、下载地址:回复2、双击lc5setup一路下一步,3、将hashgen和lc5替换了原文件4、双击lc5,并打开注册机,点击administrator三、使用方法1、点击会话,导入1.txt…

    2022年7月24日
    25
  • Spring学习– SpEL表达式

    Spring学习– SpEL表达式转载自 https://www.cnblogs.com/goodcheap/p/6490896.html目录Spring表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言。语法类似于EL:SpEL使用#{…}作为定界符,所有在大括号中的字符都将被认为是SpEL,SpEL为bean的属性进行动态赋值提供了便利。通过SpEL可以实现:通过…

    2025年9月2日
    7
  • 监控录像数据恢复方法步骤详解

    监控录像数据恢复方法步骤详解在人们生活日益改善的今天,社会的和谐安定成为了最为重要的一个问题。一些不法分子为了一己私利,通过不法手段谋取他人的财物。这样的行为对社会对个人都是一种威胁,为了能更好的防治这类社会危害因素,那就需要我们的电子警察——视频监控出马了。视频监控在现在生活中随处可见,道路上有治安监控,各家商铺有防盗监控,随处可见的监控给人们的生命财产安全带来了一份保障。利用安全防范技术进行安全防范首先对犯罪分子

    2022年5月4日
    275
  • 最新慧联A6六轴陀螺仪(阿u)

    Lua固件更新说明如下:首推1.3基线,不支持1.2基线空中升级到1.3基线版本目录名称1.3底层core下载地址1.2底层core下载地址上层软件下载地址1.3底层core固件更新说明1.2底层core固件更新说明上层脚本更新说明空间说明Luat二次开发使用的Flash空间有两部分:脚本区和文件系统区脚本区:通过Luatools烧写的所有文件,都存放在此区域非TTS版本为720KB,TTS版本为426KB;如果烧录时,超过此限制,Luatools会报错不同版本的core可能会有差异,以

    2022年4月14日
    81
  • SQL Server2008安装详细教程[通俗易懂]

    SQL Server2008安装详细教程[通俗易懂]1.将光盘文件解压成文件夹格式,(解压过程比较慢,请耐心等待);2.打开开始菜单的设置;3.打开设置后,点击更新和安全,然后进入;4.在Windows安全中心,将其关闭(注意我这里已经关闭了);5.然后再到安装包文件夹目录,找到setup.exe文件,右击,以管理员身份运行;6.右击运行后,会出来这个页面(如果没有出现这个页面,请直接跳转至第14步),然后点击下载并安装此功能,进入下一步;7.进入下一个页面后,你会发现它会出来一个正在下载所需的文件的页面,然后等待就行;8

    2022年6月23日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号