Java 保持输入值直到数组已满?

Java 保持输入值直到数组已满?,java,arrays,do-loops,Java,Arrays,Do Loops,我正在创建一个班级,保存学生的测验分数。以下是规格: 构造函数是 A.使用输入参数的长度创建int类型数组的实例。每个 数组中的元素初始化为-1。 B计数设置为0。它不是数组的长度,而是有效数组的数目 分数。换句话说,分数是一个部分填充的数组,计数是 用作有效分数的结束位置。 C使用第二个输入参数设置名称 我在add方法上遇到了问题。我必须输入学生将参加多少次测验的大小,然后将他们参加的每个测验的分数相加,直到数组满为止 示例:如果我将测验的大小输入为3,我将能够添加3个不同的分数,但如果我超过

我正在创建一个班级,保存学生的测验分数。以下是规格: 构造函数是 A.使用输入参数的长度创建int类型数组的实例。每个 数组中的元素初始化为-1。 B计数设置为0。它不是数组的长度,而是有效数组的数目 分数。换句话说,分数是一个部分填充的数组,计数是 用作有效分数的结束位置。 C使用第二个输入参数设置名称

我在add方法上遇到了问题。我必须输入学生将参加多少次测验的大小,然后将他们参加的每个测验的分数相加,直到数组满为止

示例:如果我将测验的大小输入为3,我将能够添加3个不同的分数,但如果我超过3,则必须显示一条消息,如“数组已满。无法添加值”

以下是我到目前为止为我的课程所做的:

public class Quiz {

    private static int [] scores;
    private  int count;
    private static String name;


    public Quiz (int[] scores, int count, String name){
        int size=0;
        scores=new int [size];
        count=0;
        name=" ";
    }

    public void addScores( int [] scores){
        int size=0;
        scores=new int [size];
        for(int i=0; i<size;i++)
            if(i<size)
               System.out.println(scores[i]);   
            else
                System.out.println("Array is full! the value"+ " " + scores + " "+ "cannot be added.");

}

查看
addScores
方法中的代码。将int数组
传递给它会得分,但将其值设置为大小为0的新数组。您需要省略以下行:

 scores=new int [size];
您需要将size变量设置为传入数组的大小

 int size = scores.length;

为什么这个构造函数
公共测验(int[]分数,int计数,字符串名)
需要一些参数,如果它不使用它们的话?接下来:
scores=newint[size]<代码>大小
设置为
0
,因此允许
0
条目。。。不是很有用,你不觉得吗?最后一件事(现在):在方法
addScores
中使用现有数组而不是创建新数组不是更有意义吗?两个观察结果:1)您可能希望更改构造函数中的某些行,使其看起来更像
this.count=count
,如果您采用的是一种非常普通的习惯用法,即对某个构造函数参数初始化字段。2)您几乎肯定不希望
name
scores
是静态的。它们肯定属于一个单独的
测验
实例!否则,如果在代码中的任何其他地方创建了第二个测验,则第一个测验的名称和分数将突然更新。这违背了拥有对象的全部目的…不需要留下评论-这是一个答案(而且是正确的答案)。这太棒了。我想补充一点(因为我不想单独回答,如果你愿意,你可以编辑你的答案),OP甚至可以更改他们的代码,以避免for循环中的if/else块。因为我们知道for循环将遍历整个数组的长度,所以它们可以在for循环中具有第一个print函数。然后,当循环完成时,他们可以说它已满并打印值。
 int size = scores.length;