我正在尝试学习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
而不检查它是否是真的并且做它里面的内容?
答案 0 :(得分:1)
比较只在开始时发生一次;它不会重新比较每个case
。
如果没有break
,它会落到下一个案例的陈述中,但不会重新比较。
答案 1 :(得分:0)
您可能需要查看offficial tutorial,其中详细解释了这一点。
引用与您的问题相关的部分:
另一个兴趣点是break语句。每个break语句都会终止封闭的switch语句。控制流继续切换块后面的第一个语句。 break语句是必要的,因为如果没有它们,switch块中的语句就会失败:匹配的case标签之后的所有语句都会按顺序执行,而不管后续case标签的表达式,直到遇到break语句。