2016-04-04 6 views
0

私のプログラムでは、基本的にユーザがGradebook(配列)に格納されている等級(要素)を入力することができます。 Gradebook(配列)の成績(要素)を変更するオプションもあります。JAVA再編成ユーザ入力を考慮すると、whileループがループします。

私の問題は、そのwhileループループ後で、ユーザーは「より多くの変更を行います。?[はい]または[いいえ入力し、」を尋ねている私は、yesを入力した場合を、ユーザーが変更したグレードを尋ね、グレードを交換するために許可されています修正された等級表が印刷されます。しかし、「いいえ」と入力すると、グレードブックだけが印刷されます。私はプログラムを "Good bye"に印刷する方法がありますか?ユーザーがnoを入力した場合(プログラムの終了を知らせる)?私は私のコードを再構成し、ブール値= falseでwhileループを設定すると思われますか?しかし、私はどのように始めるべきかわかりません...

ご協力いただければ幸いです。ありがとうございました。

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

ループを終了するには、ブレイクステートメントを使用します。あなたは、whileループでこれを試みることができる:

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

あなたは全体のプログラムを終了したい場合は、でSystem.exit(0)を使用します。ここで

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

が、これがどのように動作するかを実証する単純なプログラムです:

[email protected]

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); 
      } 
     } 
    } 
} 

そしてここでは、コマンドラインから出力されStackOverflowの$ javacのSimple.java

[email protected]:StackOverflow $ java単純

もっと変更を加える? YesまたはNoを入力してください:

はい

さらに変更を加えますか? YesまたはNoを入力しない:

はい

をより多くの変更を行いますか?はいまたはいいえを入力してください:

いいえ

おはよう!

+0

プログラムを終了します。ただし、「さようなら」は読めません。メッセージ。私はmakeChanges = input.next()の後でwhileループに配置しました。 – Coco

+0

新しいコードが表示されるように変更を再度投稿できますか? 「Good Bye!」と表示され、上記で入力したコードをコピーして貼り付けた場合は終了します。 –

+0

プログラムを終了するのに 'return;'を使うこともできませんでしたか? –

関連する問題