gpt4 book ai didi

java - 在 Java 中处理异常后程序结束

转载 作者:行者123 更新时间:2023-11-29 03:05:18 25 4
gpt4 key购买 nike

这是作业。

我正在尝试创建一个程序,它取十个输入数字的平均值。当用户输入非数字字符时,会捕获 NumberFormatException 异常。程序是在异常捕获后结束的,所以我改成在异常捕获后使用递归再次调用该方法,但是现在它打印了多个平均值,其中一些是不正确的。

如何更改程序,使其在捕捉到异常后继续请求输入而不是结束?我不希望程序在捕获异常后完成。

import java.util.Scanner;

import java.util.Scanner;

public class PrintAverage {

int average;

public static void main(String args[]) {
System.out.println("You are going to enter ten numbers to find their average.");
getInput();
}

private static void getInput() {
String input;
int sum = 0;
int[] arrayOfIntegers = new int[10];
double average = 0;
Scanner scanner = new Scanner(System.in);

try {
for (int i = 0; i < arrayOfIntegers.length; i++) {
System.out.println("Enter the next number.");
input = scanner.nextLine();
arrayOfIntegers[i] = Integer.parseInt(input);
}
} catch (NumberFormatException exception) {
System.out.println("The last entry was not a valid number.");
getInput();
}

for (int k = 0; k < arrayOfIntegers.length; k++) {
sum = sum + arrayOfIntegers[k];
}
average = sum / arrayOfIntegers.length;
System.out.println("The average is " + average);

}
}

最佳答案

你的 try/catch 不够具体,所以它在询问你想要的所有数字后捕获了异常。

  1. 确定抛出 NumberFormatException 的行
  2. 围绕它移动你的 try/catch
  3. 将输入存储在可以为 null 的临时变量中(原始 int 不允许这样做)
  4. 一直询问一个值,只要它为 null(= 只要它没有被设置为合法数字)

关于java - 在 Java 中处理异常后程序结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32512188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com