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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 了解你的敌人:跟踪僵尸网络

    了解你的敌人:跟踪僵尸网络了解你的敌人:跟踪僵尸网络 利用蜜网对僵尸主机了解更多 蜜网项目组 & 蜜网研究联盟http://www .honeynet.org最后修改日期 : 2005 年 3 月 13 日 翻译者artemis:吴智发密罐是一种用来发现攻击工具,攻击策略与攻击者攻击动机的知名技术。在本文中,我们考虑一种特殊的安全威胁:运行僵尸网络的个人与组织。僵尸网络是一个可以由攻击者远程控制的已被攻陷主机组成的网络。由

    2022年7月25日
    6
  • IPSec配置与实验

    IPSec配置与实验

    2021年4月17日
    159
  • Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)「建议收藏」

    Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)「建议收藏」Python表白源码合集(全部测试可行)

    2022年6月2日
    77
  • 深度学习——SPPNet原理[通俗易懂]

    深度学习——SPPNet原理[通俗易懂]从R-CNN到FastR-CNN,有必要了解下SPPNet,其全称为SpatialPyramidPoolingConvolutionalNetworks(空间金字塔池化卷积网络)。它将CNN的输入从固定尺寸改进为任意尺寸,例如在CNN结构中,输入图像的尺寸往往固定的(如224×224像素),输出可看做固定维数的向量。SPPNet在普通的CNN结构中加入了ROI池化层(ROIPo…

    2022年6月11日
    36
  • 0x00000116蓝屏解决方案_centos7重启服务器命令

    0x00000116蓝屏解决方案_centos7重启服务器命令Twowaystofixtheissuewithkernel-3.10.0-327*):-forinstalledsystem:-bootwiththeinitcall_blacklist=clocksource_done_bootingkernelparameteradded(orrebootonpreviouskernel)-onc

    2022年9月3日
    2
  • 测试用例的八大要素

    测试用例的八大要素测试用例的八大要素1.用例编号和其他编号一样,测试用例编号是用来唯一识别测试用例的编号,要求具有易识别和易维护性,用户可以很容易根据用例编号获取到相应用例的目的和作用,在系统测试用例中,编号的一般格式为A-B-C-D这几部分的作用分别如下:A:产品或项目类型,如CMS(内容管理系统)、CRM(客户关系管理系统)B:一般用来说明用例的属性,如ST(系统测试)、IT(集成测试)、UT(单元测试)C:测试需求的表示,说明该用例针对的需求点,可包括测试项和测试子项等,如文档管理、客户投诉信息管理等。通

    2022年6月28日
    30

发表回复

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

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