我的程序允许您输入数字并按Enter键。然后程序要求你给它另一个号码,直到你得到21个号码。关键是它可以为您提供平均数字。如果你想要,你可以在一个条目上输入尽可能多的数字,它仍然有效。如何制作,这样您一次只能输入一个号码?
另外,如何添加除数字之外的任何条目?
import java.util.ArrayList;
import java.util.Scanner;
class programTwo
{
private static Double calculate_average( ArrayList<Double> myArr )
{
Double sum = 0.0;
for (Double number: myArr)
{
sum += number;
}
return sum/myArr.size(); // added return statement
}
public static void main( String[] args )
{
Scanner scan = new Scanner(System.in);
ArrayList<Double> myArr = new ArrayList<Double>();
int count = 0;
System.out.println("Enter a number to be averaged, repeat up to 20 times:");
String inputs = scan.nextLine();
while (!inputs.matches("[qQ]") )
{
if (count == 20)
{
System.out.println("You entered more than 20 numbers, you suck!");
break;
}
Scanner scan2 = new Scanner(inputs); // create a new scanner out of our single line of input
myArr.add(scan2.nextDouble());
count += 1;
System.out.println("Please enter another number or press Q for your average");
inputs = scan.nextLine();
}
Double average = calculate_average(myArr);
System.out.println("Your average is: " + average);
}}
答案 0 :(得分:1)
如果用户键入“q”或“Q”以外的其他内容(也不是有效数字),则会引发InputMismatchException
。您只需捕获该异常,显示相应的消息,并要求用户继续。这可以按如下方式完成:
try {
myArr.add(scan2.nextDouble());
count += 1;
} catch (InputMismatchException e) {
System.out.println("Very funny! Now follow the instructions, will you?");
}
其余代码无需更改。