使用标签值的java switch语句

时间:2013-05-04 18:58:57

标签: java

我可以在case-block中的switch语句中引用所选的case吗?

澄清:

假设我们有一个输出给定字符串的函数output(String)

然后可以在一些新代码中转换旧代码(我不知道正确的语法)?

旧代码:

public void switchTest(String string) {
    case "car":
        output("Car: car");
        break;
    case "cat": 
        output("Animal: cat");
        break;
    case "dog":
        output("Animal: dog");
        break;
    case "mouse":
        output("Animal: mouse");
        break;
    default:
        output("Unknown");
        break;
}

建议的代码,x是我们的神奇元素:

public void switchTest(String string) {
    case "car":
        output("Car: " + x);
        break;
    case "cat":
    case "dog":
    case "mouse":
        output("Animal: " + x);
        break;
    default:
        output("Unknown");
        break;
}

PS。我只是使用一个假设的例子,所以如果没有意义,不要担心。

我希望它现在有意义,基本上我想引用case标签背后的值。

问候。

2 个答案:

答案 0 :(得分:7)

怎么样?
switch(string) {
   case "car":
        output("Car: " + string);
        break;
    case "cat":
    case "dog":
    case "mouse":
        output("Animal: " + string);
        break;
    default:
        output("Unknown");
        break;
}

答案 1 :(得分:2)

很抱歉,如果我在这里忽略了这一点,但为什么不使用字符串?

public void switchTest(String string) {
    case "car":
        output("Car: " + string);
        break;
    case "cat":
    case "dog":
    case "mouse":
        output("Animal: " + string);
        break;
    default:
        output("Unknown");
        break;
}