我正在用java编写这个程序,我需要在输入无效后重新提示用户。我找到了一个解决方案,但发现如果用户在重新提示后输入另一个无效输入,那么它会继续。有人可以告诉我一个更好的解决方案吗?无论如何,我会告诉你我有什么:
System.out.println("What is your age?\n");
age = userInput.nextInt();
if((age > 120) || (age < 1)) {//error message
System.out.println("ERROR Please enter a valid age");
System.out.println("");
System.out.println("What is your age?\n");
age = userInput.nextInt();
}//end if
如果用户在再次提示后输入了无效输入,程序将继续,我该如何克服?
答案 0 :(得分:6)
将if
替换为while
。
答案 1 :(得分:2)
使用while
循环。
while (true) {
System.out.println("What is your age?\n");
age = userInput.nextInt();
if ((age > 120) || (age < 1))
System.out.println("ERROR Please enter a valid age\n");
else
break;
}
答案 2 :(得分:1)
你可以将它放入while循环中,以便它一直循环直到满足条件 -
System.out.println("What is your age?\n");
age = userInput.nextInt();
while((age > 120) || (age < 1)) {//error message
System.out.println("ERROR Please enter a valid age");
System.out.println("");
System.out.println("What is your age?\n");
age = userInput.nextInt();
}//end if
答案 3 :(得分:1)
使用do-while:
boolean valid;
do {
System.out.println("What is your age?\n");
age = userInput.nextInt();
valid = age > 1 && age < 120;
if (!valid) {
System.out.println("ERROR Please enter a valid age");
}
}while (!valid);
答案 4 :(得分:0)
那
---->一次检查-您的输入是否为空或只是按下空格键
Scanner scnr = new Scanner(System.in);
System.out.println("Enter a string: ");
String input = scnr.nextLine();
boolean isEmpty = input == null || input.trim().length() == 0;
if (isEmpty){
System.out.println("Enter a string again: ");
input = scnr.nextLine();
}
------>多次检查-您输入的内容为空还是仅按下空格键
Scanner scnr = new Scanner(System.in);
do {
System.out.println("Enter a string: ");
input = scnr.nextLine();
}
while (input == null || input.trim().length() == 0);
重要提示: 在这种情况下,请不要忘记输入应该是静态字符串。
static String input="";
答案 5 :(得分:0)
//使用do-while循环,可以解决此问题。
do {
System.out.println("Enter a pin: ");
pin = sc.nextInt();
} while (pin != 12345);
System.out.println("Welcome to program");