我遇到了这个问题,当我得到错误的答案时感到困惑
String s = "dog";
switch( s )
{
case "dag" : System.out.print("7");
case "dog" : System.out.print("8");
case "dug" : System.out.print("9");
}
答案是 89,但我不知道为什么。我以为只有 8 个。在此先感谢您的帮助。
我遇到了这个问题,当我得到错误的答案时感到困惑
String s = "dog";
switch( s )
{
case "dag" : System.out.print("7");
case "dog" : System.out.print("8");
case "dug" : System.out.print("9");
}
答案是 89,但我不知道为什么。我以为只有 8 个。在此先感谢您的帮助。
发生这种情况是因为您break;
在找到匹配项后没有这样做,因此它将继续失败。它以这样的方式完成,因此您可以一次捕获多个事物:
case 1:
case 2:
case 3:
// do something for 1-3
break;
使用您的代码,您需要
switch (s) {
case "dag":
System.out.print("7");
break;
case "dog":
System.out.print("8");
break;
case "dug":
System.out.print("9");
break;
}
你忘了使用break。
case "dog": //print
break;