Java交换机未按预期工作
因此,作为一名初学者,我尝试按如下方式使用开关:Java交换机未按预期工作,java,Java,因此,作为一名初学者,我尝试按如下方式使用开关: switch (c_a.getText()) { case "Customer": { new LoginPage().setVisible(true); } case "Admin": { new LoginPageadmin().setVisible(true); } d
switch (c_a.getText())
{
case "Customer":
{
new LoginPage().setVisible(true);
}
case "Admin":
{
new LoginPageadmin().setVisible(true);
}
default:
{
JOptionPane.showMessageDialog(this, "Please try again");
}
}
尽管这里的问题是,它在默认情况下也会打开JOptionPane。我做错了什么?你漏掉了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;
}
}
来源:在switch语句中,需要放置break语句,否则可以执行其他开关块。下面是它在一个关于switch语句中所说的:
每个break语句终止封闭的switch语句。控制流继续执行开关块后面的第一条语句。break语句是必需的,因为如果没有它们,开关块中的语句就会失效。在遇到break语句之前,匹配大小写标签之后的所有语句都将按顺序执行,而不管后续大小写标签的表达式如何
没有休息;,您的代码通常会在切换块中失效,这里就是这种情况。您需要在切换条件之间添加中断,默认情况下是失效。您需要休息;