當前正在閱讀我的書中的第6章。我們在何處引入循環和while循環。與掃描儀混淆(Big Java Ex 6.3)
好吧基本上這樣的程序示例讓我讓用戶輸入任意數量的數字,直到用戶鍵入Q.一旦用戶鍵入Q,我需要獲取最大數量和平均值。
我不會把實際進行計算的方法放進去,因爲我非常好地命名它們,但主要是我的困惑所在。
通過下面有方式的簡單的輸入輸出
輸入
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
from java.util library
所以我們可以使用這個包。之後,我們必須創建scanner
對象。說Scanner input = new Scanner(System.in);
。現在唯一要做的事情實際上是要求用戶輸入,所以我們通過將其設置爲另一個變量(即此處的input
)來完成此操作。這很好的原因是,它允許我們將我們的掃描儀設置爲doubles
和ints
等,當它作爲默認string
(通過.nextDouble(), .nextInt()
);
所以,因爲我設置導致的string,
我是,我不能使用相同的Scanner
對象來獲取double
的印象,所以我做了一個名爲inputTwo
另一個Scanner
對象,因此,如果用戶不把Q
(即放數字)它會得到這些值。
我該如何解決這個問題?我覺得我沒有想到一些非常簡單和容易的事情。
將其轉換爲雙正確的?,爲什麼不只是做雙x =(雙)結果。我記得把(double),(int)放在前面來轉換東西。 –
@cresjoy你所描述的是鑄造,並在數字類型之間工作,但需要parseDouble函數來轉換字符串。 –
啊我看到謝謝!看起來像有很多的語法學習:( –