编辑,因为原件被标记为与完全无关的问题重复,不确定原因。
所以我试着编写一个try catch来查看用户输入的值是否介于0-4之间或不是整数。它适用于0-4之外的值,但是当它捕获非int时,比如我输入“W”我的控制台只是垃圾邮件:
“请输入等级,必须为0 - 4
这不是整数“
一遍又一遍,直到我强制停止程序。我试过包含一个抛出异常,这只是在线程“主”错误中给了我一个异常。如果它捕获错误/为什么我的代码是垃圾邮件控制台,我如何让代码返回尝试?
这是我的代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class GroupProjPersonal {
public static void main (String[] args) throws IOException {
boolean rational = false;
Scanner s = new Scanner(System.in);
while (rational == false) {
try{
System.out.println("Please enter the rank, must be 0 - 4");
int rank = s.nextInt();
if (rank < 0) {
System.out.println("Rank must be between 0 and 4.");
rational = false;
}else {
if (rank > 4) {
System.out.println("Rank must be between 0 and 4.");
rational = false;
}
else {
rational = true;
}
}
}
catch (Exception e) {
System.out.println("This is not an integer");
rational = false;
}
}
}
}