切换案件混乱

时间:2013-11-14 05:51:17

标签: switch-statement

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

 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.提前感谢您的帮助。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

你忘了使用休息。

case "dog": //print
            break;