[英]how do i create a limit of command line entries in java
我的程序允许您输入数字,然后按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);
}}
如果用户键入的不是“ q”或“ Q”之外的其他InputMismatchException
也不是有效数字),则将引发InputMismatchException
。 您只需要捕获该异常,显示一条适当的消息,然后要求用户继续即可。 可以按照以下步骤进行:
try {
myArr.add(scan2.nextDouble());
count += 1;
} catch (InputMismatchException e) {
System.out.println("Very funny! Now follow the instructions, will you?");
}
您的其余代码无需更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.