在java中使用switch语句进行多项选择

如果您的Java程序需要在两个或三个操作之间做出选择,那么If、then、else语句就足够了。然而,当一个程序可能需要做出许多选择时,if、then、else语句开始感到麻烦。在代码开始看起来不整洁之前,如果要添加语句,那么就只有这么多了。当需要跨多个选项进行决策时,请使用switch语句。...

如果您的Java程序需要在两个或三个操作之间做出选择,那么If、then、else语句就足够了。然而,当一个程序可能需要做出许多选择时,if、then、else语句开始感到麻烦。在代码开始看起来不整洁之前,如果要添加语句,那么就只有这么多了。当需要跨多个选项进行决策时,请使用switch语句。

Aerial view of a person working on a laptop next to scattered programming books. Aerial view of a person working on a laptop next to scattered programming books.

switch语句

switch语句允许程序将表达式的值与备选值列表进行比较。例如,假设您有一个包含数字1到4的下拉菜单。根据选择的数字,您希望您的程序执行不同的操作:

//let's say the user picks number 4int menuChoice = 4;switch (menuChoice){ case 1: JOptionPane.showMessageDialog(null, "You chose number 1."); break; case 2: JOptionPane.showMessageDialog(null, "You chose number 2."); break; case 3: JOptionPane.showMessageDialog(null, "You chose number 3."); break; //This option gets chosen because the value 4 matches the value of //the menuChoise variablecase 4: JOptionPane.showMessageDialog(null, "You chose number 4."); break; default: JOptionPane.showMessageDialog(null, "Something went wrong!"); break;}

如果查看switch语句的语法,您应该注意以下几点:

1.包含需要与之进行比较的值的变量位于顶部括号内。

2.每个备选选项都以案例标签开始。接下来是要与顶部变量进行比较的值,后面是冒号。例如,case1:是一个case标签,后跟值1-它可以很容易地是case 123:或case-9:。您可以根据需要选择任意多个选项。

3.如果您查看上述语法,第四个备选选项将突出显示—案例标签、它执行的代码(即JOptionPane)和break语句。break语句表示需要执行的代码结束。如果你看一下,你会发现每个选项都以break语句结尾。记住在break语句中添加内容是非常重要的。考虑下面的代码:

//let's say the user picks number 1int menuChoice = 1;switch (menuChoice)case 1: JOptionPane.showMessageDialog(null, "You chose number 1.");case 2: JOptionPane.showMessageDialog(null, "You chose number 2.");break;case 3: JOptionPane.showMessageDialog(null, "You chose number 3."); break;case 4: JOptionPane.showMessageDialog(null, "You chose number 4."); break;default: JOptionPane.showMessageDialog(null, "Something went wrong!"); break;}

您可能会看到一个对话框,上面写着“youselectnumber 1”,但是由于没有与第一个case标签匹配的break语句,第二个case标签中的代码也会被执行。这意味着下一个对话框“您选择了数字2”也将出现。

4.switch语句底部有一个默认标签。这就像是一张安全网,以防箱子标签的值都与所比较的值不匹配。当没有选择所需的选项时,提供一种执行代码的方法非常有用。

如果您总是希望选择其他选项中的一个,那么您可以省略默认标签,但是在您创建的每个switch语句的末尾添加一个标签是一个好习惯。它似乎不太可能被使用,但错误可能会潜入代码中,并有助于捕获错误。

自JDK7以来

随着JDK 7的发布,Java语法的一个变化是能够在switch语句中使用字符串。能够比较switch语句中的字符串值非常方便:

String name = "Bob";switch (name.toLowerCase()){ case "joe": JOptionPane.showMessageDialog(null, "Good morning, Joe!"); break; case "michael": JOptionPane.showMessageDialog(null, "How's it going, Michael?"); break; case "bob": JOptionPane.showMessageDialog(null, "Bob, my old friend!"); break; case "billy": JOptionPane.showMessageDialog(null, "Afternoon Billy, how's the kids?"); break; default: JOptionPane.showMessageDialog(null, "Pleased to meet you, John Doe."); break;}

在比较两个字符串值时,如果确保它们都在同一个案例中,则比较起来会容易得多。使用.toLowerCase方法意味着所有大小写标签值都可以是小写的。

关于switch语句需要记住的事项

•要比较的变量类型必须是char、byte、short、int、Character、byte、short、Integer、String或enum类型。

•案例标签旁边的值不能是变量。它必须是一个常量表达式(例如,int-literal、char-literal)。

•所有案例标签上的常量表达式值必须不同。以下情况将导致编译时错误:

switch (menuChoice){ case 323: JOptionPane.showMessageDialog(null, "You chose option 1."); break; case 323: JOptionPane.showMessageDialog(null, "You chose option 2."); break;

•开关语句中只能有一个默认标签。

•当为switch语句使用对象(例如字符串、整数、字符)时,请确保该对象不为null。执行switch语句时,null对象将导致运行时错误。

  • 发表于 2021-10-16 08:14
  • 阅读 ( 201 )
  • 分类:数学

你可能感兴趣的文章

字符串缓冲区(string stringbuffer)和java中的stringbuilder(stringbuilder in java)的区别

...Buffer和stringbuilder是Java中的类。字符串在Java编程中被广泛使用。一旦创建了字符串对象,就不可能更改它们。每次字符串发生更改时,它都会创建一个新字符串。即使是连接到现有字符串,它也会创建一个新字符串。这会导致内...

  • 发布于 2020-10-02 19:22
  • 阅读 ( 311 )

打破(break)和在java中继续(continue in java)的区别

...之前,这些语句执行一次。当迭代次数在开始时已知时,使用for循环。初始化首先发生。然后检查测试表达式。如果为真,则执行循环。然后计算更新表达式。再次检查测试表达式。如果为真,则执行循环。这个过程会重复,直...

  • 发布于 2020-10-19 05:44
  • 阅读 ( 209 )

如果还有(if else)和转换(switch)的区别

...的控制流。如果程序员想检查单个变量的值,那么他可以使用switch语句。本文讨论if-else和switch之间的区别。if-else和switch的关键区别在于,在if-else中,执行块基于if语句中表达式的求值,而在switch中,要执行的语句取决于传递给...

  • 发布于 2020-10-24 02:27
  • 阅读 ( 310 )

如何用java编写for循环

...相互作用的。可视化嵌套for循环工作方式的一个好方法是使用嵌套for循环创建以下模式。 ...

  • 发布于 2021-03-29 11:52
  • 阅读 ( 229 )

如何使用powershell生成随机姓名和电话号码

...该数据集需要表示个人识别信息(PII)时,您通常不希望使用表示实际人员的真实数据。在这里,我们将带您了解如何使用PowerShell为此类场合生成随机姓名和电话号码列表。 你需要什么 在开始之前,您应该掌握一些工具和信...

  • 发布于 2021-04-11 08:59
  • 阅读 ( 266 )

jdbc语句(jdbc statement)和编制报表(preparedstatement)的区别

...通用的数据访问,尤其是存储在关系数据库中的数据。它使用用Java编程语言编写的JDBC驱动程序将任何Java应用程序与数据库连接起来。它允许我们连接到所有公司数据库,即使在异构环境中也是如此。 Statement和PreparedStatement是表...

  • 发布于 2021-06-25 10:39
  • 阅读 ( 261 )

如何编写一个简单的java程序(write a simple java program)

专业的java开发人员通常使用IDE(集成开发环境)如Eclipse、NetBeans等来编写java程序。但是,如果您的机器中安装了所需的软件,您甚至可以使用记事本编写一个简单的java程序。 设置开发环境编写简单的java程序 首先,我...

  • 发布于 2021-06-27 21:34
  • 阅读 ( 189 )

否则(if else)和转换(switch)的区别

if-else和switch的主要区别在于,在if-else中,要执行的块取决于if语句中的表达式,而在switch中,执行取决于传递给它的单个变量。 在编程中有各种决策结构。如果还有两个,就换。如果还有,有两个街区,好像和其他。“if”块...

  • 发布于 2021-06-30 22:25
  • 阅读 ( 193 )

存储过程(stored procedure)和功能(function)的区别

...组可以在关系数据库上反复执行的SQL语句,而函数是一组使用编程语言编写的可以反复执行的指令。 关系数据库管理系统(RDBMS)是基于关系模型的数据库管理系统。它将数据存储在数据库中。每个数据库由多个相互关联的表组...

  • 发布于 2021-06-30 23:16
  • 阅读 ( 1061 )

JAVA(java)和python(python)的区别

...条语句的末尾加一个分号。在Python中,不需要在语句末尾使用分号。 语句块 在Java中,一对大括号围绕着一个语句块。然而,在Python中,语句块是缩进的。 速度 此外,与Python相比,Java是一种速度更快的语言。 复杂性 Java和Python...

  • 发布于 2021-07-01 03:43
  • 阅读 ( 313 )
Duke哈哈哈
Duke哈哈哈

0 篇文章

相关推荐