Java基础学习篇:switch条件语句进阶(最详细版)

2024-08-23 23:52

本文主要是介绍Java基础学习篇:switch条件语句进阶(最详细版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝

🥇博主昵称:小菜元

🍟博客主页:小菜元

🥗感谢点赞👍评论🃌

⚇很方便的在线编辑器:Lightly

让我们一起在写作中记录学习吧!

目录

switch使用目的

switch语句的形式

switch语句的注意要点(重点)


switch使用目的

在我们需要通过选择来输出指定内容时(例如:输入1就输出星期一,输入3就输出星期三)这个时候很多初学者都会选择if...else语句来实现,但是这样会导致编写过程冗杂,使得程序执行复杂,为避免这种问题出现,我们可以选择switch条件语句来实现这个内容

switch语句的形式

public class Test{public static void main(String[] args){switch(a){case b:        //判断b与a是否相等//输出语句执行输出内容case c:break;    //结束执行default:        //加上结束语句}}
}

以上就是switch的形式,在switch语句中,a的表达式的类型必须是与int类型兼容的基本形式,就是能自动转化为int类型,因此他的合法类型包括:byte、short、char、int类型(从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量)【每个case后的变量不能相同(称呼:为了便于表述,将switch后的变量成为switch表达式,case后的变量表达式,即a为switch的表达式】

PS:当然变量也可以是枚举类型

switch语句的注意要点(重点)

  1. 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句
  2. 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句(也就是执行了break后直接结束语句)
  3. switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句
    public class Test {public static void main(String args[]){int i = 5;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");}}
    }
    public class Test {public static void main(String args[]){int i = 5;switch(i){case 0:System.out.println("0");case 1:System.out.println("1");default:System.out.println("default");case 2:System.out.println("2");}}
    }

    上述两段代码表示含义相同!

  4. 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回default内容(3表述结果可表达次内容)
  5. 如果switch表达式与某个case表达式匹配或者是与default匹配时就从这个case表达式或者是default开始执行,遇到break即结束,否则就继续执行case后的句子,不检查case表达式的值(case表达式的定义在上方已阐述)
    public class Test {public static void main(String[] args){int x = 4;switch(x){default:System.out.println("直接输出");case 1:System.out.println("测试1");case 2:System.out.println("222");break;case 3:System.out.println("我是3");}}}
    

  6. PS:那就有朋友会问了,如果我后面的case表达式有了对应的值那么我执行顺序是什么呢?答案其实很简单,就是有对应先执行对应

  7. 一般情况下,每个case语句都应该对应一个break以便推出switch语句,但是如果多个表达式对应相同的流程分支就可不必使用
    public class Test {public static void main(String[] args){int x = 2;switch(x){case 1:System.out.println("测试1");case 2:case 3:case 4:System.out.println(11);  //即case值为234都执行次代码}}}

    使用整数或者String操作数的switch表达式必须要有default,因为无论操作数值是什么,表达式都要生成一个值

  8. PS:每个case语句一定要加break来终止执行,否则它将会继续执行知道default结束,导致出现大问题!

  9. 今天的java学习就到此结束了!希望大家能够掌握switch条件语句!

  10. ​​​​​​​

这篇关于Java基础学习篇:switch条件语句进阶(最详细版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100851

相关文章

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

基于SpringBoot实现文件秒传功能

《基于SpringBoot实现文件秒传功能》在开发Web应用时,文件上传是一个常见需求,然而,当用户需要上传大文件或相同文件多次时,会造成带宽浪费和服务器存储冗余,此时可以使用文件秒传技术通过识别重复... 目录前言文件秒传原理代码实现1. 创建项目基础结构2. 创建上传存储代码3. 创建Result类4.

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4