目前正在阅读我书中的第6章。我们介绍循环和while循环的地方。
好吧所以基本上他们的程序示例让我让用户输入任意数量的数字,直到用户输入Q.一旦用户输入Q,我需要获得最大数量和平均值。
我不会把实际进行计算的方法放在一起,因为我把它们命名得很漂亮,但主要是我的困惑所在。
顺便说一下Heres一个简单的输入输出
输入
10
0
-1
Q
输出
Average = 3.0
Max = 10.0
我的代码
public class DataSet{
public static void main(String [] args)
{
DataAnalyze data = new DataAnalyze();
Scanner input = new Scanner(System.in);
Scanner inputTwo = new Scanner(System.in);
boolean done = false;
while(!done)
{
String result = input.next();
if (result.equalsIgnoreCase("Q"))
{
done = true;
}
else {
double x = inputTwo.nextDouble();
data.add(x);
}
}
System.out.println("Average = " + data.getAverage());
System.out.println("Max num = " + data.getMaximum());
}
}
我在double x = inputTwo.nextDouble();
收到错误。
继承我的思考过程。
让我们一个标志并继续循环询问用户输入一个数字,直到我们点击Q
。现在我的问题是,当然数字需要是一个双倍而Q
将是一个字符串。所以我的尝试是制作两个扫描仪
根据我的书中的第二章,了解我对扫描仪的理解。
好import Scanner
来自java.util library
所以我们可以使用此套餐。之后我们必须创建scanner
对象。说Scanner input = new Scanner(System.in);
。现在唯一要做的就是让用户输入输入,这样我们就可以通过将其设置为另一个变量(即input
)来实现。这很好的原因是它允许我们将扫描仪设置为doubles
和ints
等,当它作为默认string
时(通过.nextDouble(), .nextInt()
);
因为我将结果设置为string,
,我的印象是我无法使用相同的Scanner
对象来获取double
,所以我创建了另一个Scanner
名为inputTwo
的对象,如果用户没有放置Q
(即放置数字),它将获得这些值。
我该如何处理?我觉得我并没有想到一些非常简单和容易的事情。
答案 0 :(得分:1)
您在这里是正确的道路,但是您不需要两个扫描仪来处理输入。如果结果是数字,请使用double x = Double.parseDouble(result)
将其强制转换为double,并将所有第二个扫描程序一起删除。祝你好运!