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()了两次,一次获取值x,另一次调用该addQuiz()方法:

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