Java Switch无法正常工作

时间:2016-03-30 20:09:06

标签: java

作为初学者,我试图按如下方式使用开关:

switch (c_a.getText())
    {

        case "Customer":
        {
            new LoginPage().setVisible(true);
        }

        case "Admin":
        {
            new LoginPageadmin().setVisible(true);
        }

        default:
        {
            JOptionPane.showMessageDialog(this, "Please try again");
        }
    }

虽然这里的问题是它也默认打开了JOptionPane。我做错了什么?

2 个答案:

答案 0 :(得分:1)

switch语句中,您需要放置break语句,否则可以执行其他开关块。以下是Java tutorial关于switch语句的内容:

  

每个break语句都会终止封闭的switch语句。控制流继续切换块后面的第一个语句。 break语句是必要的,因为没有它们,switch块中的语句就会失败。匹配的case标签之后的所有语句都按顺序执行,而不管后续case标签的表达式如何,直到遇到break语句。

如果没有break;,您的代码通常会“掉落”交换机块,就像这里的情况一样。

答案 1 :(得分:0)

您错过了break声明

switch (c_a.getText()) {
    case "Customer": {
        new LoginPage().setVisible(true);
        break;
    }
    case "Admin": {
        new LoginPageadmin().setVisible(true);
        break;
    }
    default: {
        JOptionPane.showMessageDialog(this, "Please try again");
        break;
    }
}

来源:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html