嗨我有麻煩的家庭作業。該程序使用兩種不同的方法來平均和顯示用戶定義的一組數字。我想到了所有這些,但是我在檢查錯誤時遇到了困難。我不希望用戶能夠說,他們想要在開始時平均負數或零數量的數字,所以我試圖使用if/else語句和do while循環來向用戶顯示錯誤消息並讓他們有機會再次嘗試。使用do/while循環錯誤檢查用戶輸入
當用戶輸入1以在輸入無效數字後再次嘗試該程序時,程序允許用戶再次嘗試。但是,一旦他們正確地輸入了所有內容並完成程序,程序就會重新開始。一旦程序正確完成,我希望程序結束。
任何幫助,將不勝感激。謝謝!
public static void main(String[] args)
{
//Defining the variables in main method
int inputNumber;
int repeat = 0;
//Creating the array and checking for negative or no numbers using do..while and if..else
do
{
String aStr = JOptionPane.showInputDialog(null, "How many numbers would you like to be averaged?");
inputNumber = Integer.parseInt(aStr);
if(inputNumber <= 0)
{
String errorStr = JOptionPane.showInputDialog(null, "Cannot be a negative number or a zero. Press 1 to try again.");
repeat = Integer.parseInt(errorStr);
}
else
{
double[] array = new double[inputNumber];
displayAverage(average(array));
}
} while (repeat == 1);
} // end main
// Creating a method called "average" that calculates and returns the average to main
public static double average(double [] methodArray)
{
// Defining variables in average method
int index;
double total = 0;
double average;
// Taking user inputed numbers and adding them up
for(index = 0; index < methodArray.length; index++)
{
String bStr = JOptionPane.showInputDialog(null, "Enter number " + (index + 1));
methodArray[index] = Double.parseDouble(bStr);
total = total + methodArray[index];
}
// Calculating the average
average = total/index;
return average;
} //end average method
// Creating a method called "displayAverage" that displays the average in a dialog box
public static void displayAverage(double returnedAverage)
{
JOptionPane.showMessageDialog(null, "The average of all your numbers is " + returnedAverage);
}
} //結束類
究竟是什麼問題?你無法理解「do-while」的含義?或者你在檢查輸入的有效性方面有問題?或者你有超過1個輸入的問題? – 2014-11-24 01:51:41
我遇到的問題是與輸入的有效性檢查有關。我似乎要麼不正確地使用do-while要麼從某些答案/評論的外觀來看它位於不正確的位置。 – detomaso55 2014-11-24 03:23:44
下次如果你可以寫下一個只顯示問題的小程序(calculateAverage和displayAverage簡直不相關),那麼它會好得多,並且2.明確你遇到的預期行爲和有問題的行爲。在很多情況下,通過做1,你可以自己找出解決方案。 – 2014-11-24 03:29:36