java - 为什么 Java 中的 "switch"依赖于 "break"?

标签 java

<分区>

class switch1
{
    public static void main(String args[])
    {
        int a = 10;
        switch(a)
        {
            default: System.out.println("Default");
            case -1: System.out.println("-1");
        }
    }
}

我知道这个程序将执行“default”和“case -1”语句,因为在匹配条件之后没有指定 break(在本例中是在“default”之后)。

但是我不明白的是

a) 为什么 switch 语句中需要 break

b) 如果它所做的只是匹配,为什么它甚至执行无效匹配条件的语句(即执行“case -1”))?

最佳答案

有时您需要多个案例来执行同一个功能。例如,我让用户指定模式 1 或模式 32 来表示 32 位模式,模式 2 或模式 64 表示 64 位模式。

switch (input) {

    case 1:
    case 32:
        /* Do 32-bit related code */
        break;
    case 2:
    case 64:
        /* Do 64-bit related code */
        break;
    default:
        System.out.println("Invalid input");

}

这就是休息很重要的原因。它们告诉 switch 语句何时停止执行给定场景的代码。此外,默认值通常用于开关不匹配任何大小写的情况。

关于java - 为什么 Java 中的 "switch"依赖于 "break"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18371653/

相关文章:

java - Cobertura Maven 插件在 Windows 上失败并显示 "The command line is too long"

java - 为 Java 中的 2D 模拟项目选择合适的工具包

java - boolean 字段的命名约定以避免变量名称冲突

java - 编译器放弃我的类型转换?

java - Java如何获取gradle依赖

java - Math.abs(a - b) - Math.abs(c - d) 的更快实现?

java - 如果其中有一个较小的 JScrollPane,如何滚动它?

java - 快速排序Java中的无限循环

java - 从另一个类文件访问另一个类文件

java - Selenium 无法识别 IE 中新打开的浏览器上的元素