如何给出来自“system.in”的输入条件,该输入将暂停程序直到插入正确的值?
例如,我正在等待用户的一个INT,1,2,3,4或5 用户输入“hello”
如何向用户提供“输入无效,再试一次”的消息 并保持程序停止,直到他给出正确的程序?
更新:我没有来,所以你可以编写我的代码,现在它看起来像这样:
int j=UserIn.nextInt();
switch (j) {
case 1:
break;
case 2:
writetoDic(word, "dict.txt");
break;
case 3:
word = correction;
break;
我问的是,如果从用户那里得到的东西不是int,那我怎么能要求用户给出一个有效的参数而不仅仅是出错?
答案 0 :(得分:0)
您需要使用循环。我认为你实际上并不认为halt
程序,但实际上阻止程序继续进行直到有效输入。你可以做这样的事情
Scanner scanner = new Scanner(System.in);
int num;
while (true) {
try {
System.out.println("Enter a number: ");
num = scanner.nextInt();
if (num >= 1 && num <= 5) {
break;
}
} catch (InputMistmatchException ex){
System.err.println("Input needs to be a number between 1 and 5, dummy.");
}
}
程序将在1到5之间运行而不是整数