【发布时间】:2021-05-12 19:16:26
【问题描述】:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("\nThe sum of the numbers is: " + getSumOfInput());
}
public static int getSumOfInput () {
int counter = 0;
int sumOfNums = 0;
Scanner userInput = new Scanner(System.in);
while(counter <= 10) {
System.out.print("Enter the number " + counter + ": ");
boolean checkValidity = userInput.hasNextInt();
if(checkValidity) {
int userNum = userInput.nextInt();
userInput.nextLine();
System.out.println("Number " + userNum + " added to the total sum.");
sumOfNums += userNum;
counter++;
} else {
System.out.println("Invalid input. Please, enter a number.");
}
}
userInput.close();
return sumOfNums;
}
}
大家好!
我刚开始学习 java 并且学习了控制流,现在我开始学习用户输入,所以我不太了解。问题是这段代码。如果您输入我测试的有效输入,则工作正常,无需担心。问题是我想检查用户的错误输入,例如当他们输入像“asdew”这样的字符串时。我想显示 else 语句中的错误并继续询问用户另一个输入,但是在这样的输入之后,程序将进入一个无限循环,显示“输入数字 X:无效输入。请输入一个数字。”。
你能告诉我有什么问题吗?请注意,我对 java 可以提供的功能几乎没有概念,因此您的解决方案范围有点有限。
【问题讨论】:
-
您是否尝试过将 userInput.nextLine() 也放入 else 语句?
-
是的......现在我意识到,你是对的。现在它起作用了。我只在 if 语句的一部分中使用了它,但它本身就挂了。祝你有美好的一天,非常感谢!
-
太好了,你也是 :)
标签: java input while-loop