在java中切换语句中断

时间:2015-09-06 19:03:07

标签: java

我正在尝试学习java中的break函数,例如以下代码:

Scanner in = new Scanner(System.in);
System.out.println("Enter a number");
int num = in.nextInt();
switch (num) { // switching values for num
case 1: // if num is 1 
    System.out.println("1");
    break; // stop here and don't continue.
case 2: // if num is 2
    System.out.println("F");
    break; // stop here and don't continue
default: // if all cases are wrong
    System.out.println("R");
    break; //finish
}

所以我的问题是,例如,如果我在break之后删除case 1,为什么会打印“F”?如果那里没有break,它仍然应该检查行num=2中的case 2:是否为break,那么,为什么case 1:中没有case 2,它会跳过到querySelector而不检查它是否是真的并且做它里面的内容?

2 个答案:

答案 0 :(得分:1)

比较只在开始时发生一次;它不会重新比较每个case

如果没有break,它会落到下一个案例的陈述中,但不会重新比较。

答案 1 :(得分:0)

您可能需要查看offficial tutorial,其中详细解释了这一点。

引用与您的问题相关的部分:

  

另一个兴趣点是break语句。每个break语句都会终止封闭的switch语句。控制流继续切换块后面的第一个语句。 break语句是必要的,因为如果没有它们,switch块中的语句就会失败:匹配的case标签之后的所有语句都会按顺序执行,而不管后续case标签的表达式,直到遇到break语句。