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