为什么Java中的"切换"依赖于"中断"?

Und*_*Dog 3 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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这个程序将执行"default"和"case -1"语句,因为在匹配条件之后没有指定break(在这种情况下是在"default"之后).

但我不明白的是

a)为什么break需要在switch声明中?

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

hot*_*ure 14

有时您需要多个案例来执行相同的功能.例如,我让用户指定模式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");

}
Run Code Online (Sandbox Code Playgroud)

这就是休息很重要的原因.它们告诉switch语句何时停止执行给定方案的代码.此外,默认设置通常用于开关与任何情况不匹配时.

  • @ abmitchell +1. Looks like this is from real code :) (2认同)