我正在为一个类编写这段代码,但是我似乎不知道如何使用try-catch来处理它。我使用do-while循环在输入不是整数的情况下重复输入过程。有人告诉我要亲力亲为,尝试每一件事,所以我做到了。我知道这很奇怪。下面是我的代码:
public static void main(String[] args) {
System.out.println("This program gets ten numbers from the user, and\n" +
"computes and displays the average.");
Scanner input = new Scanner(System.in);
do {
System.out.println("Please enter integer 1");
int integer1 = input.nextInt();
String intStr1 = Integer.toString(integer1);
try {
int myInt = Integer.parseInt(intStr1);
} catch (NumberFormatException e) {
System.out.println("Please enter a proper integer");
Boolean intCheck = true;
}
} while (intCheck == true);发布于 2020-03-23 13:25:29
对于语句int integer1 = input.nextInt();,如果用户没有输入integer,程序将抛出InputMismatchException。你可以捕捉到它并做进一步的计算。因此,如果抛出异常,它就不是整数,如果不是,它就是整数。
发布于 2020-03-23 13:26:38
试试这个:-
public static void main(String[] args) {
System.out.println("This program gets ten numbers from the user, and\n" +
"computes and displays the average.");
Scanner input = new Scanner(System.in);
do {
System.out.println("Please enter integer 1");
String intStr1=input.nextLine();
try {
int myInt = Integer.parseInt(intStr1);
} catch (NumberFormatException e) {
System.out.println("Please enter a proper integer");
Boolean intCheck = true;
}
} while (intCheck == true);发布于 2020-03-23 13:28:18
只需替换这两行
int integer1 = input.nextInt(); and
String intStr1 = Integer.toString(integer1); 使用
String intStr1 = input.nextLine();您最初所做的是扫描整数(如果不是,将抛出异常)。如果这是一个错误,那么您需要刷新缓冲区以接受新的用户输入。
您可以做的是将用户输入作为整行读取(直到检测到ENTER ),然后尝试进行转换。
可以考虑的其他方法是调用intStr1.trim()来删除字符串前后的空格。
https://stackoverflow.com/questions/60808245
复制相似问题