这是学校作业的一部分,所以我知道一些代码有点复杂,但这都是必需的。我的Switch语句有一个奇怪的问题,其他一切都正常,但我并不担心其余的代码。
如果我选择耳机1并输入音量1,它将按预期工作。如果我选择耳机1并输入音量2,它会询问问题两次然后工作。如果我选择耳机1并输入音量3,它会重复三次。如果我选择耳机2并输入音量1,它会问我两次然后转到默认情况。其余的奇怪行为也在继续。
我猜这是显而易见的,我错过了,但我现在已经进行了一段时间的故障排除,无法弄清楚发生了什么。我很感激任何指导或代码更正。谢谢!
alter user [<username from above>] with login = [<new user name>]
答案 0 :(得分:2)
您的break
位置不正确。
您的break
应始终位于case
以下是您的代码的更正部分:
switch(hpSelect){
case 1:
System.out.print(volMessage);
int volSelect = input.nextInt();
if (volSelect == 1){
h1.changeVolume(LOW);
System.out.println("\n" + h1);
}; break;
case 2:
System.out.print(volMessage);
volSelect = input.nextInt();
if (volSelect == 2){
h1.changeVolume(MEDIUM);
System.out.println("\n" + h2);
}; break;
case 3:
System.out.print(volMessage);
volSelect = input.nextInt();
if (volSelect == 3){
h1.changeVolume(HIGH);
System.out.println("\n" + h3);
}; break;
default:
System.out.println("Invalid entry.");
break;
}//End switch statement
以下是输出
的示例Which headphone set would you like to change the volume of? 1, 2, or 3? 1
What volume would you like to set? 1 for LOW, 2 for MEDIUM, or 3 for HIGH. 1
Volume: 1
Plugged In: true
Manufacturer: Logitech
Color: Black
答案 1 :(得分:0)
哎呀,你的休息时间在if循环中。
对于所有这些,您应该在if语句之后移动中断。所以这就是它如何寻找案例3:
case 3:
System.out.print(volMessage);
volSelect = input.nextInt();
if (volSelect == 3){
h1.changeVolume(HIGH);
System.out.println("\n" + h3);
}
break;
在默认情况下执行此操作,案例1和案例2后,您将全部设置。