我正在创建一个课程,以保持学生的测验分数。以下是规格: 构造函数是 一个。使用输入参数的长度创建int类型数组的实例。每 数组中的元素初始化为-1。 湾计数设置为0.它不是数组的长度,而是有效的数量 分数。换句话说,分数是部分填充的数组,计数是 用作有效分数的END位置。 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.");
}
这是测试驱动程序代码的一部分:
Scanner in = new Scanner (System.in);
do {
System.out.println("\nPlease enter a command or type ?");
String choice;
choice = in.next().toLowerCase();
command = choice.charAt(0);
switch (command) {
case 'n':
System.out.println("[Create a new data]");
System.out.println("[Input the size of quizzes]:"+ " ");
int size=in.nextInt();
String linebreak = in.nextLine();
System.out.println("[Input the name of student]:"+ " ");
String name=in.nextLine();
break;
case 'a':
System.out.println("a [Add a score]:"+ " ");{
int i=0;
i=in.nextInt();
break;
}
}
答案 0 :(得分:2)
查看addScores
方法中的代码。你传递一个int数组scores
,但你将它的值设置为一个大小为0的新数组。你需要省略以下行:
scores=new int [size];
您需要将size变量设置为传入数组的大小。
int size = scores.length;