学习Java中的Switch语句
我是Java新手,正在学习switch语句。但是,似乎匹配了错误的情况(学习Java中的Switch语句,java,Java,我是Java新手,正在学习switch语句。但是,似乎匹配了错误的情况(情况“二”)。我怀疑这是因为缺少break在case“one”之后,但是有人能给我解释一下Java switch语句背后的逻辑吗?当值甚至不匹配时,案例“two”为什么会匹配 这是我的密码: String a = "one"; switch(a) { case "one": System.out.println("a is one"); case "two": System.out.println("a is
情况“二”
)。我怀疑这是因为缺少break
在case“one”
之后,但是有人能给我解释一下Java switch语句背后的逻辑吗?当值甚至不匹配时,案例“two”
为什么会匹配
这是我的密码:
String a = "one";
switch(a) {
case "one": System.out.println("a is one");
case "two": System.out.println("a is two");
default: System.out.println("numbers");
}
我预期产出:
a是一个数字 但是得到: a是一个
a是两个
数字
你需要休息一下
String a = "one";
switch(a) {
case "one": System.out.println("a is one"); break;
case "two": System.out.println("a is two"); break;
default: //
}
System.out.println("numbers")
然后,可能会在后面打印数字。case语句从上到下进行计算,当它找到匹配项时,将在该点输入并向下继续,直到找到一个断点(或者它在没有找到匹配项的情况下到达底部)。您不能进入“一”,跳过“二”,然后重新输入默认值
当上面的所有其他情况都不匹配时,将使用默认值每个break语句终止封闭的switch语句。控制流继续执行开关块后面的第一条语句。break语句是必需的,因为如果没有它们,开关块中的语句就会失效:匹配的case标签之后的所有语句都会按顺序执行,而不管后续case标签的表达式如何,直到遇到break语句为止 如果所有案例都已检查且未通过,则将执行默认案例。因此,在您的情况下,代码应该是这样的
String a = "one";
switch(a) {
case "one":
System.out.println("a is one");
break;
case "two":
System.out.println("a is two");
break
default:
System.out.println("None of the cases matched ");
}
System.out.println("numbers");
在
switch
语句中,将表达式的值与case
语句中的每个文本值进行比较。如果找到匹配,则执行案例
后面的代码序列。但是,默认语句是可选的。
break
语句在开关中用于终止语句序列。
当遇到break
语句时,执行分支到整个switch
语句后面的第一个代码。
这具有跳出开关的效果。
如果省略中断
执行将继续到下一个案例默认值
预计不会在底部(据我所知)。