Java switch case 语句

news/2024/10/30 19:37:27/

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 语句,我们可以提高代码的可读性和可维护性,从而提高程序的质量和效率。


http://www.ppmy.cn/news/29854.html

相关文章

【数据结构】单链表的实现

🌇个人主页:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 🛸C语言专栏:https://blog.csdn.net/vhhhbb/category_12174730.html 🚀数据结构专栏&#xff…

数据结构(一)(嵌入式学习)

数据结构干货总结(一)基础线性表的顺序表示线性表的链式表示单链表双链表循环链表循环单链表循环双链表栈顺序存储链式存储队列队列的定义队列的常见基本操作队列的顺序存储结构顺序队列循环队列队列的链式存储结构树概念二叉树二叉树的创建基础 数据&a…

【基础算法】双指针---最长连续不重复子序列

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

成功解决configure: error: the HTTP rewrite module requires the PCRE library

文章目录 前言问题复现问题解决思考环节总结前言 大家好,我是沐风晓月,本专栏是记录日常实验中的所有疑难杂症,教程的安装,程序的bug,甚至各类报错,如果你也遇到了困惑和问题,欢迎与我一起交流学习。 另外不要解决完问题就结束了,思考环节也要好好看看哦。 问题复现…

移除元素(每日一题)

目录 一、题目描述 二、题目分析 2.1 方法一 2.1.1 思路 2.1.2 代码 2.2 方法二 2.2.1 思路 2.2.2 代码 一、题目描述 题目链接:27. 移除元素 - 力扣(LeetCode) 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数…

python实现PCA降维画分类散点图并标出95%的置信区间

此代码以数据集鸢尾花为例,对其使用PCA降维后,绘制了三个类别的样本点和对应的置信圆(即椭圆)。先放效果图。 下面是完整代码: from matplotlib.patches import Ellipsedef plot_point_cov(points, nstd3, axNone, **…

Protobuf简介

Protobuf简介 1. Protocol Buffers1.1. 什么是Protocol Buffers?1.2. 选择你最喜欢的语言1.3. 如何开始2. Protocol Buffer Basics: C++2.1. 问题领域2.2. 在哪里找到示例代码2.3. 定义协议格式(Defining Your Protocol Format)1. Protocol Buffers Protocol Buffers(协议缓冲…

颠覆你的认知,业务同事都能开发软件,我简直无地自容……

经常看到网络鼓吹业务人员也能搭建应用,本是嗤之以鼻、半信半疑,但当这件事真实发生在自己身上时,竟觉得此言不虚? 一、背景 最近公司为了集成系统、提升扩展能力,引进了低代码平台JNPF,说个题外话&#…