iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >为什么switch case语句在java中需要加入break
  • 132
分享到

为什么switch case语句在java中需要加入break

javaswitchcase 2023-05-31 10:05:24 132人浏览 八月长安
摘要

本篇文章为大家展示了为什么switch case语句在java中需要加入break,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java 中使用switch case语句需要加入break 做了具体

本篇文章为大家展示了为什么switch case语句在java中需要加入break,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

java 中使用switch case语句需要加入break 做了具体的实例分析,及编译源码,在源码中分析应该如何使用,大家可以参考下:

假设我们有如下这样一个switch语句:

public static void test(int index) {   switch (index) {   case 1:     System.out.println(1);   case 2:     System.out.println(2);   case 3:     System.out.println(3);   default:     System.out.println("Default");   } }

当我们在执行上面的方法时,如果我们传入的参数是1,那么会输出1、2、3和default,如果传入的参数是2,那么会输出2、3和default,这是为什么呢?这是因为switch的case语句是用来根据满足条件从确定的行开始执行的,如果不加入break语句跳出switch逻辑,则会一直往下执行,这也是为什么上面的测试代码会出现传入参数为2时会输出2、3和default。
为此,我们也可以看一下上面的代码编译后的class文件,通过eclipse打开后,我们可以看到如下内容:

 public static void test(int index);   iload_0 [index]    tableswitch default: 49     case 1: 28     case 2: 35     case 3: 42   getstatic java.lang.System.out : java.io.PrintStream [22]   iconst_1   invokevirtual java.io.PrintStream.println(int) : void [28]   getstatic java.lang.System.out : java.io.PrintStream [22]   iconst_2   invokevirtual java.io.PrintStream.println(int) : void [28]   getstatic java.lang.System.out : java.io.PrintStream [22]   iconst_3   invokevirtual java.io.PrintStream.println(int) : void [28]   getstatic java.lang.System.out : java.io.PrintStream [22]   ldc <String "Default"> [33]   invokevirtual java.io.PrintStream.println(java.lang.String) : void [35]   return

 上面编译后的语句每行前面的数字是程序的指定序号,我们可以把它简单的理解为行号,我们可以看到数字为1的那行定义了一个switch指定,其默认会跳到49行,如果传入的参数是1则跳到28行执行,如果是2则跳到35行执行,如果是3则跳到42行执行。那么我们先来看程序的第28行到32行,其对应的就是调用System.out.println输出1,完了后没有特殊的指令,程序是会继续顺序执行的,也就是会依次执行35、38、直到57行结束。
如果我们把源程序的case语句末端都加上break语句,如下这样:

public static void test(int index) {   switch (index) {   case 1:     System.out.println(1);     break;   case 2:     System.out.println(2);     break;   case 3:     System.out.println(3);     break;   default:     System.out.println("Default");     break;   } }

那么对应的编译的class文件通过Eclipse打开后可以看到如下内容:

public static void test(int index);   iload_0 [index]    tableswitch default: 58     case 1: 28     case 2: 38     case 3: 48   getstatic java.lang.System.out : java.io.PrintStream [22]   iconst_1   invokevirtual java.io.PrintStream.println(int) : void [28]   Goto 66   getstatic java.lang.System.out : java.io.PrintStream [22]   iconst_2   invokevirtual java.io.PrintStream.println(int) : void [28]   goto 66   getstatic java.lang.System.out : java.io.PrintStream [22]   iconst_3   invokevirtual java.io.PrintStream.println(int) : void [28]   goto 66   getstatic java.lang.System.out : java.io.PrintStream [22]   ldc <String "Default"> [33]   invokevirtual java.io.PrintStream.println(java.lang.String) : void [35]   return

 我们可以看到switch语句默认会执行58行,如果传入的参数是1则会执行28行,如果是2则会从38行开始执行,接着我们可以看到28行开始是执行的System.out.println(1)的逻辑,完了后会顺序执行到35行,35行的指令是会引导程序执行到第66行,也就是跳出了switch逻辑,对应我们的测试代码就是程序结束了。这也是为什么我们在使用switch语句时通常需要在每个case语句结束时加入break指令的原因。

 

上述内容就是为什么switch case语句在java中需要加入break,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 为什么switch case语句在java中需要加入break

本文链接: https://www.lsjlt.com/news/224894.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 为什么switch case语句在java中需要加入break
    本篇文章为大家展示了为什么switch case语句在java中需要加入break,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java 中使用switch case语句需要加入break 做了具体...
    99+
    2023-05-31
    java switch case
  • 为什么不需要在JavaScript使用switch 语句!
    本篇文章为大家展示了为什么不需要在JavaScript使用switch 语句!,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。没有 switch 就没有复杂的代码块s...
    99+
    2024-04-02
  • Java 如何在switch case语句中声明变量
    目录在switch case语句中声明变量第一种情况常见的场景为第二种情况常见的场景为Java switch-case语句用法及例题原理归原理,下面是一个例题在switch case...
    99+
    2024-04-02
  • PHP switch语句中不使用break的情况是什么
    这篇文章主要讲解了“PHP switch语句中不使用break的情况是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP switch语句中不使用break的情况是什么”吧!为什么不使...
    99+
    2023-07-05
  • java中break语句的作用是什么
    java中break语句的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式...
    99+
    2023-06-14
  • java中switch语句的作用是什么
    java中switch语句的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应...
    99+
    2023-06-14
  • 为什么要防sql语句注入
    sql注入是通过把sql命令插入到web表单提交或通过页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql指令以及获得攻击者想得知的数据信息,因此我们需要通过数据库安全防护技术实现有效防护,从而避免sql注入导致数据泄露的情况。...
    99+
    2024-04-02
  • java中switch语句的执行过程是什么
    今天就跟大家聊聊有关java中switch语句的执行过程是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编...
    99+
    2023-06-14
  • java中switch和if语句的区别是什么
    这期内容当中小编将会给大家带来有关java中switch和if语句的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程...
    99+
    2023-06-14
  • 为什么不要在using语句中调用WCF服务
    这篇文章主要介绍为什么不要在using语句中调用WCF服务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如果你调用WCF服务时,像下面的代码这样在using语句中进行调用,需要注意一个问题。using (C...
    99+
    2023-06-17
  • Java中为什么需要内部类
    这篇文章给大家分享的是有关Java中为什么需要内部类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。内部类:定义在类的内部的类为什么需要内部类?典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其...
    99+
    2023-06-17
  • Java中为什么需要慎用异常
    这篇文章给大家分享的是有关Java中为什么需要慎用异常的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。慎用异常在Java软件开发中,经常使用 try-catch 进行错误捕获,但是,try-catch 语句对系统性...
    99+
    2023-06-27
  • java中为什么需要并发编程
    这篇文章主要介绍了java中为什么需要并发编程,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为什么需要并发编程?  并发编程帮助我们把做什么和什么时候做分开,可以明显的改进应...
    99+
    2023-06-27
  • 为什么在Golang中可能需要单例模式?
    在Golang中可能需要单例模式是因为在某些情况下,我们希望确保某个类型的对象在程序中只被创建一次,以减少资源消耗或避免产生多个实例带来的问题。单例模式是一种设计模式,用于确保一个类只...
    99+
    2024-03-05
    golang 单例模式
  • 为什么你需要在 PHP IDE 中了解自然语言处理和 Bash?
    PHP IDE 是一种强大的工具,它可以帮助开发人员更快速地编写和调试 PHP 代码。然而,除了基本的 PHP 知识,还有一些其他的技能可以让你的开发效率更高。其中最重要的两项技能是自然语言处理和 Bash。在本篇文章中,我们将探讨为什么你...
    99+
    2023-06-17
    ide bash 自然语言处理
  • 在移动网站中需要添加什么Meta 标签
    小编给大家分享一下在移动网站中需要添加什么Meta 标签,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!viewportviewport 几乎已经是公认的标准了,最...
    99+
    2023-06-10
  • 为什么要在PHP中使用Laravel容器加载?
    在PHP中使用Laravel容器加载器是一个非常流行的技术。Laravel容器加载器是一个简单而强大的工具,它可以帮助你更好地组织和管理代码。在本文中,我们将介绍为什么要在PHP中使用Laravel容器加载器,并提供一些示例代码。 什么...
    99+
    2023-09-16
    load laravel 容器
  • 浅谈java中为什么重写equals后需要重写hashCode
    目录一、先看现象二、为什么要重写hashCode三、实现代码四、总结一、先看现象 public class TestDemo { public static void ...
    99+
    2024-04-02
  • Java中为什么重写equals()也需要重写hashCode方法
    Java中为什么重写equals()也需要重写hashCode() 所有类默认继承Object类 先看一下Object源码 package java.lang; public cla...
    99+
    2023-05-17
    Java 重写equals()为什么重写hashCode() Java 重写equals() java重写hashCode 为什么equals要重写hashcode
  • 为什么在微服务架构中需要负载均衡
    在微服务架构中需要负载均衡的原因有以下几点: 提高系统的可靠性和稳定性:在微服务架构中,各个服务实例可能会部署在多台服务器上,负...
    99+
    2024-04-17
    负载均衡
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作