当前位置: 首页 > news >正文

Java switch case 语句

Java 的 switch case 语句是一种常用的控制流语句,用于基于不同的输入值执行不同的操作。本文将详细介绍 Java switch case 语句的作用、用法以及在实际工作中的应用。

一、switch case 语句的作用 switch case 语句是一种多分支条件语句,它基于不同的输入值,执行不同的操作。switch case 语句通常用于替代一系列的 if else 语句,以提高代码的可读性和可维护性。当需要处理多个不同的情况时,使用 switch case 语句可以使代码更加简洁,也更易于理解。

二、Java switch case 语句的用法 Java 的 switch case 语句由 switch 关键字、一个括号和一个或多个 case 语句组成。下面是一个简单的示例:

public class SwitchDemo {public static void main(String[] args) {int num = 3;switch (num) {case 1:System.out.println("One");break;case 2:System.out.println("Two");break;case 3:System.out.println("Three");break;default:System.out.println("Not found");}}
}

在上面的示例中,我们使用了一个整数变量 num,然后根据 num 的不同取值,执行不同的操作。在 switch 关键字后面的括号中,我们指定了要比较的变量 num。然后,在花括号中,我们列出了多个 case 语句。每个 case 语句都包含了一个常量值和一系列要执行的操作。如果变量 num 的值与某个 case 语句中的常量值相等,那么该 case 语句中的操作就会被执行。如果没有找到与变量 num 匹配的 case 语句,那么就会执行默认的操作。

在 switch case 语句中,每个 case 语句都必须以 break 语句结束。这是因为如果没有 break 语句,程序将会继续执行下一个 case 语句,这可能会导致意外的结果。例如,如果我们省略上面示例中的 break 语句,那么将会打印出以下结果:

Three
Not found

因为当 num 的值为 3 时,它既符合 case 3 中的条件,也符合默认条件。

除了使用 break 语句之外,我们还可以使用 return 语句、throw 语句和 continue 语句来结束一个 case 语句。

三、在实际工作中的应用 switch case 语句在实际工作中具有广泛的应用。下面是一些示例:

  1. 根据用户的输入执行不同的操作。 例如,在一个简单的计算器程序中,我们可以使用 switch case 语句根据用户的输入执行不同的计算操作。例如,如果用户输入了加法操作,我们可以执行相应的代码,如果用户输入了减法操作,则执行相应的代码。
    public static void calculate(int num1, int num2, String operator) {switch(operator) {case "+":System.out.println(num1 + num2);break;case "-":System.out.println(num1 - num2);break;case "*":System.out.println(num1 * num2);break;case "/":System.out.println(num1 / num2);break;default:System.out.println("Invalid operator");}
    }
    

  2. 根据不同的状态执行不同的操作。 在一个状态机或状态模式中,我们可以使用 switch case 语句根据不同的状态执行不同的操作。例如,我们可以定义不同的状态,例如 "开机"、"待机"、"关机" 等,然后根据不同的状态执行不同的操作。
    public void handleState(State state) {switch(state) {case ON:// 执行开机操作break;case STANDBY:// 执行待机操作break;case OFF:// 执行关机操作break;default:throw new IllegalArgumentException("Invalid state");}
    }
    

  3. 根据不同的类型执行不同的操作。 在一些代码中,我们需要根据不同的类型执行不同的操作。例如,我们可以根据文件的扩展名执行不同的操作。下面是一个示例:
    public static void openFile(File file) {String extension = getFileExtension(file.getName());switch(extension) {case "txt":// 打开文本文件break;case "jpg":case "png":// 打开图像文件break;case "pdf":// 打开 PDF 文件break;default:throw new IllegalArgumentException("Unsupported file extension");}
    }private static String getFileExtension(String filename) {int dotIndex = filename.lastIndexOf(".");if(dotIndex == -1) {return "";}return filename.substring(dotIndex + 1);
    }
    

    在上面的示例中,我们根据文件的扩展名执行不同的操作。如果扩展名为 "txt",则打开文本文件;如果扩展名为 "jpg" 或 "png",则打开图像文件;如果扩展名为 "pdf",则打开 PDF 文件。如果扩展名不是上述任何一种,就会抛出 IllegalArgumentException 异常。

    总结: 在本文中,我们详细介绍了 Java switch case 语句的作用、用法以及在实际工作中的应用。switch case 语句是一种多分支条件语句,用于基于不同的输入值执行不同的操作。它可以替代一系列的 if else 语句,以提高代码的可读性和可维护性。在实际工作中,switch case 语句可以用于根据用户的输入执行不同的计算操作、根据不同的状态执行不同的操作以及根据不同的类型执行不同的操作。当然,switch case 语句也存在一些限制,例如它只能处理相等比较,不能处理范围比较,且每个 case 分支必须以 break 或 return 结束,否则会出现错误。因此,在使用 switch case 语句时,需要注意这些限制,以确保程序的正确性和可靠性。

    总之,Java switch case 语句是一种非常实用的多分支条件语句,可以帮助我们根据不同的输入值执行不同的操作。通过合理的使用 switch case 语句,我们可以提高代码的可读性和可维护性,从而提高程序的质量和效率。

相关文章:

Java switch case 语句

Java 的 switch case 语句是一种常用的控制流语句,用于基于不同的输入值执行不同的操作。本文将详细介绍 Java switch case 语句的作用、用法以及在实际工作中的应用。 一、switch case 语句的作用 switch case 语句是一种多分支条件语句,它基于不同的输…...

Linux下MQTT客户端消息订阅与发布实现

MQTT(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议。它基于TCP协议,默认端口号为1883,为此,它也需要一个消息中间件 。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下…...

代码规范----编程规约(下)

目录 四、OOP规约 五、日期时间 六、集合处理 四、OOP规约 (1)、避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可 (2)、所有的覆写方法&#xff0…...

c++连接mysql

开始想用mysql connector/c8.0 来操作数据库cmake加上配置后一直编译错误 我这里也没有截屏编译错误大概意思是driver.h里面声明的一个check_lib函数里面用了一个未定义的check找遍了资料都没有找到解决办法最后还是用了原始API如果有人有解决办法请留个位置先上在用的cmake配置…...

CentOS7操作系统安装nginx实战(多种方法,超详细)

文章目录前言一. 实验环境二. 使用yum安装nginx2.1 添加yum源2.1.1 使用官网提供的源地址(方法一)2.1.2 使用epel的方式进行安装(方法二)2.2 开始安装nginx2.3 启动并进行测试2.4 其他的一些用法:三. 编译方式安装ngin…...

【测绘程序设计】——空间直角坐标转换

测绘工程中经常遇到空间直角坐标转换——比如,北京54(或西安80)空间直角坐标转换成CGCS2000(或WGS-84)空间直角坐标,常用转换模型包括:①布尔沙模型(国家级及省级范围);②莫洛坚斯基模型(省级以下范围);③三维四参数(小于22局部区域) 等。   本文分享了基于布…...

数组--java--动态数组--有序数组--底层

java数组基础--java中的数组创建数组空间占用初始化数组访问元素插入查找删除元素动态数组扩容插入和添加重写toString删除二维数组二维数组注意点有序数组实现测试写在开头: 这篇文章包括数组的基础、一点底层的内容和一些稍微深入的东西。 作为第一个深入学习的数…...

Linux下使用C语言实现简单的聊天室程序

本文章介绍一种基于Linux使用C语言实现简单的局域网聊天室程序的方法,支持消息群发,历史数据查询,好友列表查看,好友上线下线提醒等功能。聊天界面如下图所示:下面将按步骤介绍该系统的设计实现,首先在linu…...

【数学】任意一个正整数n最多只有一个质因数大于根号n,怎么证明?

定理 任意一个正整数n最多只有一个大于n\sqrt{n}n​的质因子,并且该大于n\sqrt{n}n​质因子的幂次是1。 证明(反证法) 证明:最多只有一个大于n\sqrt{n}n​的质因子 假设n存在两个大于n\sqrt{n}n​的质因子,分别为p…...

【ES6】var let const 之面试题系列

关于 var、let、const 是前端开发人员经常用到的关键字,也是经典的面试题,接下来就站在面试题的角度来看待它们之间的区别。 一、区别 1. var 声明的范围是函数作用域,let 和 const 声明的范围是块作用域,块作用域是函数作用域的…...

Vue基础入门讲义(四)-组件化

文章目录1.引言2.定义全局组件3.组件的复用4.局部注册5.组件通信5.1.父向子传递props5.2.传递复杂数据5.3.子向父的通信1.引言 在大型应用开发的时候,页面可以划分成很多部分。往往不同的页面,也会有相同的部分。例如可能会有相同的头部导航。 但是如果…...

Android onLayout布局流程解析

组件布局流程结论 1.)layout流程始于ViewRootImpl的performLayout()方法,该方法会调用根View(DecorView)的layout()方法进行布局,因为DecorView是ViewGroup(FrameLayout),所以layout流程来到了ViewGroup(其…...

浅分析BIG-建筑展示系统

一、主页(主要界面)重点疑点(需要解决)1.云平台实时同步。是否可以电脑与hololens2同步或链接?并可以传输信息提醒?一级界面(启动界面)1.交互式启动激活效果(触发按钮旋转…...

模电基础(1) 半导体基础知识

基本内容: 1.本征半导体的基本介绍结构; 2.杂质半导体; 3.PN结的形成; 4.PN结的性质。 1.本征半导体 半导体:导电性能介于绝缘体和导体之间的物质。 本征半导体是纯净的晶体结构的半导体。 纯净→无杂质晶体结构→稳…...

阅读笔记:TF - IDF 原理

今天查阅 TF-IDF 资料,发现百度百科里面提供了一个例子,解释的很清楚,记下来备用。 原文链接:https://baike.baidu.com/item/tf-idf/8816134?fraladdin 例子:在某个一共有一千词的网页中 “原子能”、“的” 和 “应…...

【C语言】float 关键字

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4…...

Linux 网络编程(实现多路IO转接服务器)

1.select函数实现多路IO转接服务器select函数原型&#xff1a;包含在头文件<sys/time.h>&#xff0c;<sys/types.h>和<unistd.h>int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);作用&#xff1a;确定…...

DC-4 靶场学习

信息搜集&#xff1a; 首先获取靶场ip&#xff0c;和之前一样。 arp-scan -l nmap -sP 192.168.28.0/24然后访问。 发现需要登录。 漏洞分析: 直接用bp爆破&#xff0c;爆破出来密码为happy&#xff0c;登录。 发现执行了命令&#xff0c;抓包。 修改命令可以执行&#xff…...

QML组件

一个QML文件定义了一个独立的、顶级的QML组件。 一个QML组件就是一个模板&#xff0c;被QML运行环境解释来创建一个带有一些预定义行为的对象。 一个独立的QML组件可以运行多次来禅城多个对象&#xff0c;每个对象都可以称为该组件的实例。 例子&#xff1a; 在项目中添加一…...

canvas 学习指南

canvas 学习指南 创建一个 canvas <! DOCTYPE html><html xmlns"http://www.w3.org/1999/xhtml"><head><title></title><meta charset"utf-8" /><script type"text/javascript">window.onload fun…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...