Java 当用户输入字符串时,程序返回到循环的开始,当整数程序继续
下面你可以看到我遇到麻烦的代码部分。到目前为止,当用户输入一个错误时,程序返回一个错误。我希望程序返回错误的条目,请重试!然后回到起点Java 当用户输入字符串时,程序返回到循环的开始,当整数程序继续,java,Java,下面你可以看到我遇到麻烦的代码部分。到目前为止,当用户输入一个错误时,程序返回一个错误。我希望程序返回错误的条目,请重试!然后回到起点 do{ System.out.println("Vnesi dožino besede, ki jo iščeš"); Scanner in = new Scanner(System.in); dolzina = in.nextInt(); }while (dolzina<0); 这将捕获扫描器在期望int并获取其
do{
System.out.println("Vnesi dožino besede, ki jo iščeš");
Scanner in = new Scanner(System.in);
dolzina = in.nextInt();
}while (dolzina<0);
这将捕获扫描器在期望int并获取其他内容时抛出的异常。当这种情况发生时,它将在dolzina中放入一个负数,根据循环条件,它将重新执行循环
扫描仪应该在环路外打开。如果我理解您的意思,您可以在尝试阅读之前检查扫描仪是否正确。而且,您应该声明扫描仪一次。大概
int dolzina = -1;
Scanner in = new Scanner(System.in);
do {
System.out.println("Vnesi dožino besede, ki jo iščeš");
if (in.hasNextInt()) {
dolzina = in.nextInt();
} else if (in.hasNextLine()) {
System.out.printf("Wrong entry (%s) try again!%n",
in.nextLine());
} else {
System.out.println("No Entry!");
System.exit(1);
}
} while (dolzina < 0);
尝试检查int是否与in.hasNextInt一起传递
if (in.hasNextInt()) {
dolzina = in.nextInt();
}
对于dolzina的值,您希望重复循环。你犯了什么错误。在致电nextInt之前,请更清楚地使用hasNextInt;
if (in.hasNextInt()) {
dolzina = in.nextInt();
}