【发布时间】:2020-06-15 08:41:16
【问题描述】:
所以我正在开发一个不断向用户询问双精度值的 Java 程序。我应该使用哨兵控制的循环,哨兵值为-999。在使用 try/catch 块处理 inputMismatchExceptions、ArrayStoreExeptions 和一般异常时,我需要使用 ArrayList。
我目前在输入 -999、应用来自 ArrayStoreExceptions 的重复消息的消息并在 inputMismatchExceptions 之后继续输入后尝试完成程序时遇到问题。
public static void main(String[] args) {
double d;
double average;
double max;
double min;
ArrayList<Double> value = new ArrayList<Double>();
Scanner input = new Scanner(System.in);
System.out.println("Enter a double value (-999 to exit):");
d = input.nextDouble();
while (!value.equals(-999)) {
try {
System.out.println("Enter a double value (-999 to exit):");
value.add(input.nextDouble());
} catch (InputMismatchException e) {
System.out.println("That is not a valid double value.");
} catch (ArrayStoreException e) {
System.out.println("Duplicate value");
} catch (Exception e) {
System.out.println("Error");
}
}
}
【问题讨论】:
-
一个数组列表永远不会等于双精度数,也许您想针对输入的值进行测试?
-
如果您想在输入 -999 之前请求 多个 输入,您将需要请求输入 在循环内以及, 或者不是,只是 before 循环。
-
有没有样品可以给我举个例子?
标签: java exception sentinel inputmismatchexception arraystoreexception