Java switch使用

Java switch使用

在这里插入图片描述

涉及关键字:
switch: 表达式
变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型,
case: 分支语句,需要指定当前分支的常量或者字面量
①可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号,每一个case代表一个分支
②case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面量,且不能重复
字面量:字面量是编程语言中表示固定值的符号或记号(token)
default: 默认分支
default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句
break: 终止switch
case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句

①case击穿
②default的作用示例
③break的作用示例
④default+break
⑤多个case

①case击穿

public static void main(String[] args) {a(1);System.out.println("----------------------------------");a(2);System.out.println("----------------------------------");a(0);
}private static void a(int a) {switch (a){case 1:System.out.println("aaaa11");case 2:System.out.println("aaaa22");}}

在这里插入图片描述

②default的作用示例

public static void main(String[] args) {b(0);System.out.println("----------------------------------");b(1);System.out.println("----------------------------------");b(2);
}private static void b(int b) {switch (b){case 1:System.out.println("bbbb11");case 2:System.out.println("bbbb22");default:System.out.println("bbbb-default");}}

在这里插入图片描述

③break的作用示例

public static void main(String[] args) {c(1);System.out.println("----------------------------------");c(2);System.out.println("----------------------------------");c(0);
}
private static void c(int c) {switch (c){case 1:System.out.println("cccc11");break;case 2:System.out.println("cccc22");default:System.out.println("cccc-default");}}

在这里插入图片描述

④default+break

public static void main(String[] args) {d(1);System.out.println("----------------------------------");d(2);System.out.println("----------------------------------");d(0);
}private static void d(int d) {switch (d){case 1:System.out.println("dddd11");break;default:System.out.println("dddd-default");break;case 2:System.out.println("dddd22");break;}}

在这里插入图片描述

public static void main(String[] args) {f(1);System.out.println("----------------------------------");f(2);System.out.println("----------------------------------");f(0);
}
private static void f(int f) {switch (f){case 1:System.out.println("ffff11");break;default:System.out.println("ffff-default");case 2:System.out.println("ffff22");break;}}

在这里插入图片描述

⑤多个case

public static void main(String[] args) {e(1);System.out.println("----------------------------------");e(2);System.out.println("----------------------------------");e(0);System.out.println("----------------------------------");e(3);
}
private static void e(int e) {switch (e){case 1:case 2:System.out.println("eeee11");break;case 3:case 4:System.out.println("eeee22");break;default:System.out.println("eeee-default");break;}}

在这里插入图片描述
综上:
1、正常情况下,针对不是最后一个的case分支,均需要配合break使用来终止switch语句,防止case击穿
2、多个case可以使用同一个分支,详见”⑤多个case“
3、有default分支的话,位置最好放在最后,此时不需要添加break;如果放在中间的位置,则需要配合break使用,用以终止switch语句。详见” ④default+break“

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

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

相关文章

7.C++:多态

一、 virtual关键字 //1.可以修饰原函数,为了完成虚函数的重写,满足多态的条件之一; //2.可以在菱形继承中,完成虚继承,解决数据冗余和二义性; 两个地方使用同一关键字,但二者间没有一点关联 二…

Hadoop大数据处理技术-安装配置篇

2024/4/16 ​Hadoop学习前的准备 1)首先安装虚拟机 VMWare 虚拟机:因为它不是一个硬件 而是用软件做出来的 模拟真机 所以叫做虚拟机 但实际上它里面也可以安装Linux和Windows 实际它的实现 虚拟机中想要实现某个操作时 将需求发给Windows 调用Windo…

2024-中药网络药理学-教程(全网最牛逼)

中药网络药理学-教程(全网最牛逼) 请您下载资源绑定,就可以看到了,具体的内容了 1. 首先uniprot官网下载数据 1.1. 数据下载 地址:https://www.uniprot.org/ ![外链图片 ge-20240410212513022.png&pos…

Java实现优先级队列(堆)

前言 在学习完二叉树的相关知识后,我们对数据结构有了更多的认识,本文将介绍到优先级队列(堆) 1.优先级队列 1.1概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能…

开源无需root!一款功能强悍的手机电脑同屏工具,14K star拿捏了【文末带项目源码】

现在使用最常用的设备就是手机和电脑了,经常会需要将手机屏幕镜像到电脑,或者是用电脑来操控手机等。 今天给大家安利一款功能强悍好用的工具 - QtScrcpy。 简介 QtScrcpy 是一个强大的安卓手机实时投屏到电脑的开源项目,可以将你的安卓手机…

PHP-extract变量覆盖

[题目信息]: 题目名称题目难度PHP-extract变量覆盖1 [题目考点]: 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$&#x…

✌粤嵌—2024/3/29—合并两个有序数组 + 赎金信✌

1. 合并两个有序数组 代码实现&#xff1a; 方法一&#xff1a;将数组num2中的元素添加到数组num1的末尾&#xff0c;再排序 void merge(int *nums1, int nums1Size, int m, int *nums2, int nums2Size, int n) {for (int i 0; i < n; i) {nums1[m] nums2[i];}// 冒泡排序…

Navicat 干货 | 了解 PostgreSQL 规则

PostgreSQL 是一个强大的开源关系型数据库管理系统&#xff0c;为增强数据管理和操作提供了丰富的功能。这些功能中包含了规则&#xff0c;这是一种用于控制数据库内部查询和命令处理方式的机制。本文将探讨 PostgreSQL 规则的工作原理&#xff0c;以及它们与触发器的区别&…

【IDEA--dubug相关】Debug项目时启动不了(启动至一半卡住)

下面是一些经常在日常debug时用到的场景&#xff0c;方便查看、与君共勉&#xff01; 文章目录 1. 问题背景2. 可能原因3. 解决办法 最近遇到的一种SpringBoot启动失败的情况&#xff0c;如果有相同情况的&#xff0c;可以看看是否是这个原因 1. 问题背景 用Debug模式启动bo…

鸿蒙入门04-真机运行“遥遥领先”

如果你有一台真的 "遥遥领先"那么是可以直接在手机上真机运行你的项目的我们也来尝试一下运行 一、手机设置开发者模式 打开手机设置 打开手机设置界面 向下滑动到关于手机位置 快速连续点击版本号位置 下图所示位置快速连续点击 打开 3 - 5 次即可 会提示您已经进…

React-Redux(一)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-Redux&#xff08;一&#xff09; 目录 1、简介 2、三大原则&#xff08;重点&#xf…

数据结构——线性表(顺序表)

数据结构——线性表&#xff08;顺序表&#xff09; 什么是线性表顺序表顺序表结构定义初始化顺序表插入表尾插入扩容遍历指定位置插入头插 删除指定位置删除头删尾删 查找和修改 我们今天进入数据结构的学习&#xff0c;今天我们从梦开始的地方&#xff1a;顺序表。 什么是线…