2016-04-04 39 views
0

我的程序基本上允許用戶輸入存儲在成績簿(數組)中的成績(要素)。用戶還可以選擇更改成績簿(數組)中的成績(元素)。JAVA Reorganizing在考慮用戶輸入時在數組中循環。

我的問題是,一旦while循環迴路,用戶會被要求「讓更多的變化?輸入是或否」如果我輸入yes,那麼用戶要求改變其等級,被允許更換等級,並修改成績簿打印。但是,如果我輸入「否」,只是打印成績簿。有什麼方法可以讓節目打印「再見!」 (表示程序結束),如果用戶輸入否?我相信我應該重新組織我的代碼,並設置一個while循環boolean = false?但我不知道如何開始...

任何幫助將不勝感激。謝謝。

System.out.println("Make changes? Enter Yes or No"); 
    String makeChanges = input.next(); 



    if (makeChanges.equals("no")) { 

     System.out.println("Good bye!"); 
    } 


    while (makeChanges.equalsIgnoreCase("Yes")) { 
     // Ask user if what grade they would like to change 

     //int index = NumberReader.readPositiveInt(input, "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input", index); 

     int index = NumberReader.readCappedPositiveInt(input, "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input", numOfGrades); 

     System.out.println("Enter grade (limit to two decimal places)" + ": "); 
     // offset the index by one 
     mogrades[index - 1] = NumberReader.readPositiveDouble(input, "Enter grade " + index + " :", 
       "Invalid data entered"); 

     System.out.println("The Grade book contains: "); 

     printArray(mogrades); 

     System.out.println("Make more changes? Enter Yes or No"); 

     makeChanges = input.next(); 

     System.out.println(makeChanges); 

     System.out.println("The Grade book contains: "); 

     printArray(mogrades); 
    } 
} 

回答

0

Break語句用於退出循環。如果你想退出整個程序,使用System.exit

if (makeChanges.equalsIgnoreCase("No")) { 
    System.out.println("Good Bye!"); 
    break; 
} 

(0);:你可以在while循環試試這個

if (makeChanges.equalsIgnoreCase("No")) { 
    System.out.println("Good Bye!"); 
    System.exit(0); 
} 

下面是一個簡單的程序演示如何這會工作:

import java.util.Scanner; 

public class Simple { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     String makeChanges = "Yes"; 

     while (makeChanges.equalsIgnoreCase("Yes")) { 
      System.out.println("Make more changes? Enter Yes or No:"); 
      makeChanges = input.next(); 
      if (makeChanges.equalsIgnoreCase("No")) { 
       System.out.println("Good Bye!"); 
       System.exit(0); 
      } 
     } 
    } 
} 

這裏是在命令行輸出:

[email protected]:StackOverflow上$ javac的Simple.java

[email protected]:StackOverflow $ java簡單

進行更多更改S'輸入是或否:

做出更多的更改嗎?輸入是或否:

做出更多的更改嗎?輸入是或否:

再見!

+0

它確實退出程序。但是,它沒有閱讀「再見!」信息。在makeChanges = input.next()後,我將它放在while循環中。 – Coco

+0

您可以重新發布您的更改,以便我可以看到新的代碼?它應該顯示「Good Bye!」,如果您複製並粘貼了我在上面輸入的代碼,請退出。 –

+0

難道你不能只用'return;'退出程序嗎? –