首页 > Java > java教程 > 正文

Java 中的 case 语句

WBOY
发布: 2024-08-30 15:24:19
原创
1121 人浏览过

在编程时,处理不同条件下的不同动作是非常困难的。尽管在 Java 和许多其他编程语言中,if-else、if-else-if 等语句在各种条件下使用。但是,如果有“n”个场景需要针对每个条件采取单独的操作怎么办?此时的多个 if 和 else-if 语句可能会在代码中的某个时刻给程序员带来混乱,因为它涉及多个大括号和每个条件的一组语句。为了在 Java 中处理此类情况,可以使用 Switch-Case 语句来简化程序员并减少代码行和复杂性。

switch 语句是分支语句。 case 是与 Switch 语句一起使用的关键字。当表达式的值与case值匹配时,它执行语句/语句,并且特定语句的代码以break关键字结束。 Java中的Case值可以是byte、int、short、byte数据类型。到了Java JDK7,case的值还可以是String、Wrapper和枚举类型。如果 Case 的任何值与表达式不匹配,则执行默认语句。尽管在 Switch-Case 语句中 default 和 break 关键字不是强制性的。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

Case 语句在 Java 中如何工作?

如上所述,当表达式的值与 Case 值匹配时,将执行特定 Switch 语句中的 Case。如果没有任何值与 case 值匹配,则执行 Switch 块中定义的 default 语句;否则,什么都不会被执行。

重要要点总结:

  • 程序中可以有多个switch块,根据不同的情况而定。
  • 单个 Switch 块中可以有任意数量的 Case 语句。
  • Case 语句中不允许出现重复值。
  • switch 语句的变量的数据类型需要与 Case 语句的值相同。
  • Case 值不允许使用变量。值可以是常量或文字。
  • 每个 Case 中的 Break 关键字用于终止该 Case 的特定语句序列。如果任何 case 语句中都没有使用break,那么就不会出现错误;相反,所有与匹配案例相关的案例都会被执行。
  • Beak 和 default 关键字在 Switch 块中是可选的。

Java中Switch Case语句的语法

switch (expression)
{
// case statements
// same data type for switch expression and case value Case value1:
//Statement /statements to be executed
break;
case value 2:
//Statement /statements to be executed
break;
case value'n':
//Statement /statements to be executed
break;
// There can be as many Cases as the user wants in a Switch block
//default is an optional case and executed if none of the case values matches the expression
default:
//statement
}
登录后复制

Switch Case 语句流程图

上面的流程图清楚地展示了Java中Switch和Case语句的工作原理。它显示了 Switch 语句中定义的表达式如何与从顶部开始直到最后一步的 Case 值进行匹配。如果直到最后一步才匹配该值,即每个 case 结束时都返回 false,则执行“default”内的代码。如果任何 case 的值与表达式匹配,即任何 Case 语句中返回“true”,则执行特定块的代码,然后执行退出 Switch 块。

Java 中的 case 语句

Case Java 语句示例

下面的示例清楚地展示了 Case 语句在 Java 中的工作原理。

示例#1

当 Switch 表达式的值与 Case 值匹配时

代码:

public class MyClass {
public static void main(String args[]) {
int value = 8;
switch (value)
{
case 3:
System.out.println("Congratulations here is the case 3 executed"); break;
case 4:
System.out.println("Congratulations here is the case 4 executed"); break;
case 8:
System.out.println("Congratulations here is the case 8 executed"); break;
default:
System.out.println("Sorry none of your cases matched"); break;
}
}
}
登录后复制

输出:

Java 中的 case 语句

示例#2

当没有值与 Switch 表达式匹配时

代码:

public class MonthClass {
public static void main(String args[]) {
int month= 13;
switch (month)
{
case 1:
System.out.println("Month is January"); break;
case 2:
System.out.println("Month is February"); break;
case 4:
System.out.println("Month is April");
break;
default:
System.out.println("Sorry either the value you have given is invalid or not matched with any of the case.");
break;
}
}
}
登录后复制

输出:

Java 中的 case 语句

示例 #3

Case 语句中缺少break关键字时

代码:

public class VowelClass{
public static void main(String args[]) {
char ch = 'a';
switch (ch)
{
case 'e':
System.out.println("Value matched - e, a vowel\n"); break;
case 'a':
System.out.println("Value matched - a, a vowel"); case 'w':
System.out.println("Value matched - w, not a vowel"); case 'o':
System.out.println("Value matched - o, a vowel"); default:
System.out.println("Sorry none of your cases matched"); break;
}
}
}
登录后复制

输出:

Java 中的 case 语句

示例#4

当 switch 块中没有默认块时

代码:

public class NoOutputClass {
public static void main(String args[]) {
char grades = 'D';
switch (grades)
{
Case 'A':
System.out.println("Grade A - Excellent");
break;
case 'B':
System.out.println("Grade B - Good");
break;
case 'C':
System.out.println("Grade C - Poor");
break;
}
}
}
登录后复制

输出:

Java 中的 case 语句

结论

在上面的文章中,我们已经提到了 switch 语句的几乎所有场景以及它们可以生成的输出。虽然使用 Switch 语句非常容易,但程序员在使用它们之前应该彻底理解它,因为有时如果犯了一些错误,可能会产生意想不到的结果。一般情况下,Switch应该用在需要在一定条件下执行动作,且条件较多的场景。只有2-3个条件的情况下,可以用if-else -if语句来解决。

推荐文章

这是 Java 中 Case 语句的指南。在这里,我们讨论 Java 中 Switch-Case 语句的流程图以及语法和示例。您还可以浏览我们其他推荐的文章以了解更多信息 –

  1. Java 中的星形图案
  2. Java 框架
  3. 最佳 Java 编译器
  4. JavaScript 中的案例语句

以上是Java 中的 case 语句的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!