开发技术-Java switch case 的简单用法

news/2024/4/28 0:25:50/文章来源:https://blog.csdn.net/JustDI0209/article/details/128948847

文章目录

    • 1. integral-selector
    • 2. case
    • 3. break
    • 4. default
    • 5. 总结

最近开发写 switch 发现有的技术点还没有掌握,在此做个记录。

ON JAVA 中文版中,关于 switch 的描述为:

switch 有时也被划归为一种选择语句。根据整数表达式的值,switch 语句可以从一系列代码中选出一段去执行。它的格式如下:

        switch (integral - selector) {case integral - value1:statement;break;case integral - value2:statement;break;case integral - value3:statement;break;case integral - value4:statement;break;case integral - value5:statement;break;// ... default:statement;}

1. integral-selector

integral-selector 为能够产生整数值的表达式,或者为字符串(Java 8及以后)、枚举,具体包括 byte short char int 及它们的包装类,如果传入错误,有些代码编写工具(类似 idea)会有提示。
在这里插入图片描述

2. case

case 后面跟的是匹配条件, switch 语句匹配至第一个 case 时,开始执行后面的代码。

public class Test {public static void main(String[] args) {int a = 2;switch (a) {case 1:System.out.println("1!");case 2:System.out.println("2!");case 3:System.out.println("3!");}}
}

输出:

2!
3!

3. break

break 可使执行流程跳转至 switch 主体的末尾。这是构建 switch 语句的一种传统方式,但 break 是可选的。若省略 break, 会继续执行后面的 case 语句的代码,直到遇到一个 break 为止。

public class Test {public static void main(String[] args) {int a = 4;switch (a) {case 1:System.out.println("1!");case 2:System.out.println("2!");case 3:System.out.println("3!");break;case 4:System.out.println("4!");case 5:System.out.println("5!");break;case 6:System.out.println("6!");default:System.out.println("Default!");}}
}

输出:

4!
5!

一般来说,case 后面还是写 break 的。

4. default

如果没有匹配到 case ,就执行 default 语句。一般情况下,default 写在最后,且后面不用写 break(写了也没用)。

public class Test {public static void main(String[] args) {int a = 8;switch (a) {case 1:System.out.println("1!");case 2:System.out.println("2!");case 3:System.out.println("3!");break;case 4:System.out.println("4!");case 5:System.out.println("5!");break;case 6:System.out.println("6!");default:System.out.println("Default!");}}
}

输出:

Default!

default 没写在 switch 语句的最后面,就相当于一个普通的 case ,匹配到时就会开始执行,并不会等到匹配完所有的 case 才执行。

public class Test {public static void main(String[] args) {int a = 8;switch (a) {case 1:System.out.println("1!");case 2:System.out.println("2!");case 3:System.out.println("3!");break;default:System.out.println("Default!");case 4:System.out.println("4!");case 5:System.out.println("5!");break;case 6:System.out.println("6!");}}
}

输出:

Default!
4!
5!

这种时候在 default 后面的 break 就会有效果了。

public class Test {public static void main(String[] args) {int a = 8;switch (a) {case 1:System.out.println("1!");case 2:System.out.println("2!");case 3:System.out.println("3!");break;default:System.out.println("Default!");break;case 4:System.out.println("4!");case 5:System.out.println("5!");break;case 6:System.out.println("6!");}}
}

输出:

Default!

十般情况下也没人这样写。
在这里插入图片描述
(图源网络,侵删)

5. 总结

还是按照书本上的来吧,别整幺蛾子。

public class Test {public static void main(String[] args) {int a = 2;switch (a) {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!");}}
}

输出:

2!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_255851.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据挖掘,计算机网络、操作系统刷题笔记47

数据挖掘,计算机网络、操作系统刷题笔记47 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,orac…

FFmpeg集成qsv的编译安装

文章目录FFmpeg集成qsv的编译安装一、参考二、编译安装流程1. LibVA 和 Media-Driver 的安装2. Intel Media SDK 编译3. ffmpeg的编译安装4. 验证安装FFmpeg集成qsv的编译安装 一、参考 Ubuntu20.04 ffmpeg添加 Intel核显QSV加速支持 视频和视频帧:Intel GPU&…

持续集成Jenkins (四)Jenkins+git+maven项目构建、自动化部署

GIT配置1.1 前言:需要安装 git 客户端.yum install git1.2 Jenkins 配置插件 Git 在仪表盘选择Manage Jenkins>>Plugin Manager>>进入如下页面,可以选择可选的插件,安装完成后的插件在installed里面可以看到,我这里已…

Conda安装到虚拟环境中的包在pycharm中不显示--pip下载的包都到了base环境中-Ubuntu20.04

问题 今天刚装了一个Ubuntu20.04系统,安装完Anaconda,虚拟环境的包也都下载好了,结果在pycharm中配置完解释器后,只有几个基础的包,切换到base环境后发现,这些包都被下载到了base环境中。 在网上查了各种…

安装PhpStorm2020.3

1、卸载旧软件 如果已安装软件,先打开文件安装目录,找到Uninstall.exe点击卸载 删除.jetbrains目录 点击软件“PhpStorm-2020.3.exe”安装 打开软件 打开一个新建的空文件夹,预加载 将BetterIntelliJ.zip拖动到idea的编辑区域 然后…

我们的微服务中为什么需要网关?

说起 Spring Cloud Gateway 的使用场景,我相信很多小伙伴都能够脱口而出认证二字,确实,在网关中完成认证操作,确实是 Gateway 的重要使用场景之一,然而并不是唯一的使用场景。在微服务中使用网关的好处可太多了&#x…

nodejs基于vue的饭店点餐外卖平台网站

本系统主要实现了管理员:首页、个人中心、用户管理、菜品分类管理、菜品信息管理、菜品评价管理、系统管理、订单管理,用户:首页、个人中心、菜品评价管理、我的收藏管理、订单管理,前台首页:首页、菜品信息、菜品资讯、个人中心、后台管理、…

C++——继承那些事儿你真的知道吗?

目录1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化2.父类和子类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6. 继承与静态成员7.复杂的菱形继承及菱形虚拟继承如何解决数据冗余和二…

基于深度学习的安全帽监管系统

摘 要 安全生产管理是建筑、重工业等高危企业发展的重要方针,安全帽在施工生产环境中对人员头部防护起着关键作用,因此加强安全帽佩戴监管十分必要。近年来,基于图像视觉的安全帽佩戴监测方法成为了企业实施管理的主要手段,如何提高安全帽佩戴检测精度和检测速度是应用的关键难…

【C++】 类和对象 (下)

文章目录📕再谈构造函数1. 构造函数体赋值2. 初始化列表3. explicit 关键字📕static 成员1. 概念2. static 成员变量3. static 成员函数📕 友元1. 友元函数2. 友元类📕内部类📕编译器优化📕再谈构造函数 1…

C# 引用DLL 静态字段和非静态字段

再讲一下如何引用dll动态链接库:右键项目----添加 --项目引用----选择你要添加的dll即可。在依赖项这里就可以看到。再在要用的项目那里using一下这个dll的命名空间:using 生成dll;然后就可以使用以下所说的两种方法去调用dll里的函数了。切记&#xff0…

canal 使用详解

第1章 Canal 简介canal [kənl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费工作原理canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 d…

fastadmin后台表单文字过长,限制显示,鼠标悬停显示全部

问题&#xff1a;显示文字区域过长&#xff0c;影响用户体验感 解决措施&#xff1a; 特别注意&#xff1a; return "<span styledisplay: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap; title" row.contents ">" value …

【物联网平台选型】葵花宝典:盘点开源、SaaS及通用型平台的优劣势和选型适配

随着工业物联网领域和智慧物联领域的发展&#xff0c;大大小小的物联项目和物联场景需求层出不穷&#xff0c;物联网平台作为技术底座型软件&#xff0c;是不可或缺的项目地基。 市场需求下&#xff0c;物联网平台提供商越来越多&#xff0c;“打地基”的方式大体分为开源平台、…

内核数据结构-XArray

内核数据结构-XArrayXArray简介XArray 基本数据结构Xarray结构图API介绍Xarray锁参考链接XArray简介 XArray是一种抽象数据类型&#xff0c;类似于一个大的指针数组&#xff0c;它满足了许多与哈希或常规可调整大小数组相同的需求。由于 xarray 中的数据都是指针&#xff0c;使…

以太网知识-GMII / RGMII接口

今天和海翎光电的小编一起分析MII/RMII/SMII&#xff0c;以及GMII/RGMII/SGMII接口的信号定义&#xff0c;及相关知识&#xff0c;同时小编也对RJ-45接口进行了总结&#xff0c;分析了在10/100模式下和1000M模式下的连接方法。GMII 接口分析GMII接口提供了8位数据通道&#xff…

shell条件测试

文章目录三、shell条件测试3.1条件测试的基本语法3.2 文件测试表达式3.3字符串测试表达式3.4 整数测试表达式3.5 逻辑操作符三、shell条件测试 为了能够正确处理Shell程序运行过程中遇到的各种情况&#xff0c;Linux Shell提供了一组测试运算符。通过这些运算符&#xff0c;Sh…

go语言的并发编程

并发编程是 Go语言的一个重要特性,而 go语言也是基于此而设计出来的。 本文将会介绍如何使用go-gc中的“runtime”方法实现 go语言中的并发编程。 在之前的文章中,我们已经对 runtime方法进行了详细介绍,这次文章将对 runtime方法进行深入分析,并讲解如何在go-gc中使用该方…

智能建筑电力监控自动化的解决方案

引言 安科瑞 李亚俊 壹捌柒贰壹零玖捌柒伍柒 所谓智能建筑就是采用计算机技术和通讯技术对建筑的设备进行自动监控&#xff0c;对信息资源进行管理和为用户提供信息服务等。美国智能建筑研究机构把智能建筑定义为&#xff1a;通过对建筑物的结构、系统、服务和管理四个基本要…

数据库模式(schema)是什么?

在数据库的术语中&#xff0c;模式&#xff08;schema&#xff09;是一个逻辑概念&#xff0c;用于组织数据库中的对象。模式中的对象通常包括表、索引、数据类型、序列、视图、存储过程、主键、外键等等。 模式可以为数据库对象提供逻辑隔离功能&#xff0c;不用应用程序可以…