0

プログラミングは初めてです。私が一生懸命理解しようとしてきた問題はこれです。私のコンソールアプリケーションは、すべてのスコアの平均と合計を計算するために、入力したいテストスコアの数をユーザーに尋ねます。3 を入力すると、3 つのテスト スコアを入力するよう求められ、すべてのスコアの平均と合計が表示されます。次に、プログラムを続行するか終了するかを尋ねます。「はい続行」と入力すると、最初からやり直す必要があります。私の問題は、はいと言ったときに、合計またはスコアカウントがクリアされず、前から継続して新しいスコアが追加されることです。

 import java.util.Scanner;

 public class TestScoreApp
 {
       public static void main(String[] args)
       {
           // display operational messages
           System.out.println("Please enter test scores that range from 0 to 100.");
           System.out.println("To end the program enter 999.");
           System.out.println();  // print a blank line

           // initialize variables and create a Scanner object
           int scoreTotal = 0;
           int scoreCount = 0;
           int testScore = 0;
           Scanner sc = new Scanner(System.in);
           String choice = "y";

           // get a series of test scores from the user
           while (!choice.equalsIgnoreCase("n"))
           {
               System.out.println("Enter the number of test score to be entered: ");
               int numberOfTestScores = sc.nextInt();

               for (int i = 1; i <= numberOfTestScores; i++)
               {
                    // get the input from the user
                    System.out.print("Enter score " + i + ": ");
                    testScore = sc.nextInt();

                    // accumulate score count and score total
                    if (testScore <= 100)
                    {
                         scoreCount = scoreCount + 1;
                         scoreTotal = scoreTotal + testScore;
                    }
                    else if (testScore != 999)
                          System.out.println("Invalid entry, not counted");


                }
                double averageScore = scoreTotal / scoreCount;
                String message = "\n" +
                     "Score count:   " + scoreCount + "\n"
                   + "Score total:   " + scoreTotal + "\n"
                   + "Average score: " + averageScore + "\n";
                System.out.println(message);
                System.out.println();
                System.out.println("Enter more test scores? (y/n)");
                choice= sc.next();
          }



    // display the score count, score total, and average score



    }
}
4

2 に答える 2

1

while ループの開始後にスコア変数の宣言を移動するだけです。

// create a Scanner object
Scanner sc = new Scanner(System.in);
String choice = "y";

// get a series of test scores from the user
while (!choice.equalsIgnoreCase("n"))
{
    // initialize variables
    int scoreTotal = 0;
    int scoreCount = 0;
    int testScore = 0;

    System.out.println("Enter the number of test score to be entered: ");
    int numberOfTestScores = sc.nextInt();

そうすれば、プロセスが再び開始されるたびに、それらは 0 に初期化されます。

于 2013-02-06T00:53:02.043 に答える
1

while ループ内の最初のステートメントでは、scoreTotal と scoreCount を 0 に設定する必要があります。

于 2013-02-06T00:53:39.443 に答える