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

时间:2014-11-11 15:18:00

标签: java arrays do-loops

我正在创建一个课程,以保持学生的测验分数。以下是规格: 构造函数是 一个。使用输入参数的长度创建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;
    }
}

1 个答案:

答案 0 :(得分:2)

查看addScores方法中的代码。你传递一个int数组scores,但你将它的值设置为一个大小为0的新数组。你需要省略以下行:

 scores=new int [size];

您需要将size变量设置为传入数组的大小。

 int size = scores.length;