0

特定のオブジェクトの名前と値を取得し、値の合計とその平均を与えるオブジェクト指向プログラムを作成しています。したがって、このプログラムの目的は、ユーザーに必要な数の値を入力させ、0 未満の値を入力して終了させることです。次に、プログラムは、入力された値の合計とその平均を大量に計算します。問題は、オブジェクトの値としてセンチネル値をループが取り込むことです。
これを防ぐにはどうすればよいですか?

import java.util.Scanner;

public class TestStudent {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);    
        Student s = new Student();
        s.setName(sc.nextLine());
        System.out.println("Please enter in scores and to stop enter a score less than 0");
        int x = 0;
        while (x >= 0) {
            x = sc.nextInt();
            if(x >= 0) {
                s.addQuiz(sc.nextInt());        
            }
            else break;
        }
        System.out.println(s.getName());
        System.out.println(s.totalScore());
        System.out.println(s.averageScore());
    }
}

これらは、私が使用しているミューテーターとアクセサーです。

public int totalScore() {
    return quiz;
}

public void addQuiz(int score) {
    quiz = quiz + score;
    num++;
}

public double averageScore() {
    average = quiz/num;
    return average;
}
4

1 に答える 1

1

あなたが書いたループをもっとよく読んでください。nextInt()1 回は値を取得しx、もう 1 回はaddQuiz()メソッドを呼び出します。

while (x >= 0) {
    x = sc.nextInt();
    if (x >= 0) {
        s.addQuiz(sc.nextInt());
    }
    else break;
}
于 2013-09-22T22:21:11.517 に答える