感谢您的时间。
我在验证程序时遇到问题。我尝试过使用While / Switch但它们都是一样的。问题是当用户输入错误的输入例如5时,它显示错误,然后它让他们再次输入,但如果他们再次输入错误的数字,程序不会验证...我绝对可以复制代码一次又一次地在其中,但应该有一个更简单的方法。
希望你明白我想要实现的目标:D
我怎么能这样做它是一个继续循环?谢谢!
//选择合适的房间 public static int rooms(){
int room;
// Creating a new keyboard input
Scanner scanner = new Scanner(System.in);
// Displaying a message on the screen
System.out.println("What room are you in? ");
// Input
room = scanner.nextInt();
if (room==1) {
roomOne();
} else if (room==2) {
roomTwo();
} else if (room==3) {
roomThree();
} else if (room==4) {
roomFour();
} else {
System.out.println("Wrong room number, please enter the room number.");
room = scanner.nextInt();
}
//System.out.println("Sorry but you entered the wrong room number " + room + " Enter the correct room number 1-4 ");
return room;
} // End Rooms
答案 0 :(得分:0)
while (true) {
int room = scanner.nextInt();
if(room < 1 || room > 4) {
System.out.println("Wrong room number, please enter the room number.");
continue;
}
break;
}
if (room == 1)
roomOne();
else if (room == 2)
roomTwo();
else if (room == 3)
roomThree();
else if (room == 4)
roomFour();
希望它有所帮助,但是你应该阅读更多关于循环的内容。
答案 1 :(得分:0)
你正在寻找一个像这样的while循环。
我使用do ... while执行行至少一次。
方法检查值并在不正确的情况下打印消息。返回false将阻止代码退出循环并再次读取。
{
// Creating a new keyboard input
Scanner scanner = new Scanner(System.in);
int room;
do {
// Displaying a message on the screen
System.out.println("What room are you in? ");
room = scanner.nextInt();
} while( !isValid(room) );
... //if else or switch
}
private boolean isValid(int room){
if(room > 4 || room < 1){
System.out.println("Try again ;)" );
return false;
} else return true;
}
这是一个快速的代码注释甚至测试。
答案 2 :(得分:-1)
这是你应该如何为输入清理设置一个循环: