0
我写了一个简单的程序(请原谅我不使用try-catch来处理异常),以便将数字添加到列表中并查找它们的总和,平均值,最大值和最小值。我想包括一个代码来检查空白。我试图用hasNext()来做到这一点。但是,当我运行该程序并输入一些空白时,它不会按照我的意图告诉我“您没有输入数字”。目前,我阻止了hasNext()部分,所以程序的其余部分可以顺利运行。我是Java和编程的新手。我在这个论坛上检查过相关的帖子,似乎无法找到解决方案。用Java扫描器检查空白
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class BigAndSmall {
public static void main(String[] args) {
ArrayList<Double> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
double input = 0;
double max = 0;
double min = 0;
double sum = 0;
do{
System.out.println("Enter a number or 0 to quit: ");
input = sc.nextDouble();
list.add(input);
/* if (!sc.hasNextDouble()) {
System.out.println("You did not enter a number");
}
*/
}while(input != 0.0);
if (input == 0.0) {
for (int i = 0; i < list.size(); i++) {
sum = sum + list.get(i);
}
}
double avg = sum/list.size();
System.out.println("Sum: " + sum);
Collections.sort(list);
System.out.println("Largest: " + Collections.max(list));
System.out.println("Average: " + avg);
System.out.println("Smallest: " + list.get(0));
}
}
'BufferedReader'和'InputStreamReader'在'java.io'中定义。所以,请为这些提交'import'声明。 –
部分工作!如果我现在运行程序并输入一个字母或空白作为第一个输入,它会抛出NoSuchElementException并终止。 ''do do System.out.println(“输入一个数字或0退出:”); \t \t \t尝试{ \t \t \t input = Double.parseDouble(br.readLine()); \t \t \t list.add(input); \t \t \t}赶上(NumberFormatException的| IOException异常NFE){ \t \t \t的System.out.println( “你没有输入一个数字!”); \t \t \t} \t \t} while(input!= 0.0); \t \t如果(则为list.size()== 1){ \t \t \t的System.out.println( “你没有输入任何数字”); '' – sedeh