0

我遇到了这个问题,当我得到错误的答案时感到困惑

 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 个。在此先感谢您的帮助。

4

2 回答 2

2

发生这种情况是因为您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;
}
于 2013-11-14T05:55:53.063 回答
0

你忘了使用break。

case "dog": //print
            break;
于 2013-11-14T05:57:18.290 回答