0
我是Java新手,遇到了一些問題。我的教師要求我在while循環中嵌套do while循環; do while循環會爲中期,最終和項目等級的用戶可輸入的等級類型(大於0但小於100)創建限制。然後將此輸入用於計算這三個等級的平均值。while循環重複兩次,不遵循條件
但是,我的while while循環運行了兩次,並使用來自計算中第二個提示的輸入的平均值。我究竟做錯了什麼?我已經瀏覽了我的教科書和這個網站,但我似乎無法理解爲什麼它這樣做,因爲它只提示兩次,然後只使用第二個提示的輸入。任何幫助將不勝感激。感謝您花時間閱讀我的文章!
爲了清楚起見,這裏是我的代碼:
System.out.println("******** Step 2: Grading for Multiple Students *********");
System.out.println();
// Create scanner object for text and number
Scanner textReader = new Scanner(System.in);
Scanner numberReader = new Scanner(System.in);
System.out.print("Would you like to input grades (y/n): ");
String response = textReader.nextLine();
// Create while loop for first yes/no question
while ((!response.equalsIgnoreCase("y")) && (!response.equalsIgnoreCase("n")))
{
System.out.print("y/n needed: ");
response = textReader.nextLine();
System.out.println();
}
while ((response.equalsIgnoreCase("y")))
{
System.out.print("\nStudent Name: ");
String studentName = textReader.nextLine();
System.out.print("Course Name: ");
String courseName = textReader.nextLine();
System.out.print("Midterm Grade (needs to be between 0-100): ");
double midtermGrade = numberReader.nextDouble();
do
{
System.out.print("Midterm Grade (needs to be between 0-100): ");
midtermGrade = numberReader.nextDouble();
break;
}
while ((midtermGrade < 0) || (midtermGrade > 100));
System.out.print("Final Grade (needs to be between 0-100): ");
double finalGrade = numberReader.nextDouble();
do
{
System.out.print("Final Grade (needs to be between 0-100): ");
finalGrade = numberReader.nextDouble();
}
while ((finalGrade < 0) || (finalGrade > 100));
System.out.print("Project Grade (needs to be between 0-100): ");
double projectGrade = numberReader.nextDouble();
do
{
System.out.print("Project Grade (needs to be between 0-100): ");
projectGrade = numberReader.nextDouble();
}
while ((projectGrade < 0) || (projectGrade > 100));
這裏是我的輸出:
非常感謝你解釋了while和while循環之間的區別!我只是回來補充說,你完全改變了我一直在考慮循環。我在課程的這一部分遇到了麻煩,這真的幫了大忙!謝謝! – iMagicMango
不客氣,我很高興它幫助你。 –