【switch...case】击穿 | return和break的区别

1、switch...case语句的使用:

执行流程:

首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有case后面的常量表达式都不等,则执行default后面的语句n+1,然后退出switch语句,程序流程转向开关语句的下一个语句

java 复制代码
switch(表达式)
{ 
      case 常量表达式1:
         语句1;
      break;
      
      case 常量表达式2:
         语句2;
      break;

......
      case 常量表达式n:
         语句n;
      break;

      default:
         语句n+1;
      break;
}

switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);

同一个switch语句,所有case子句中的常量值互不相同; case子句中的值必须是常量,不能是变量名或不确定的表达式值;

default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default

2、switch...case语句击穿:

break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾。

一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break;

java 复制代码
public class SwitchTest {
   public static void main(String args[]){
      int i = 1;
      switch(i){
         case 0:
            System.out.println("0");
         case 1:
            System.out.println("1");
         case 2:
            System.out.println("2");
         default:
            System.out.println("default");
      }
   }
}
======================
输出:
1
2
default

3、switch...case语句中,return和break的区别:

区别:

break是直接退出switch语句;return是退出该函数,也就是switch语句块后面的语句也不执行了。

使用break结束循环 break可以终止循环 和 switch语句的运行;break用于结束一个循环,即跳出循环体,执行循环体之后的代码。

return关键字不是专门用于结束循环,return的功能时结束一个方法。当一个方法遇到return语句时,这个方法将被结束。方法结束 , 执行权回到方法调用处。

相关推荐
无心水40 分钟前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
Boilermaker19928 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维8 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_999 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子9 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34169 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
恋爱绝缘体19 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wszy180910 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
wszy180910 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos
程序员小假11 小时前
我们来说一下无锁队列 Disruptor 的原理
java·后端