需要扫描仪输入数组

时间:2013-12-02 09:13:13

标签: java arrays input

有谁知道如何为数组设置用户输入,我无法在任何地方找到命令。我的阵列'成绩'有20个位置。我不太确定'grades.length'功能,但我认为它会提示20次。但是我添加了一个while语句来覆盖但是它完全忽略了FOR声明。如果我可以设置数组的用户输入我可以摆脱while语句... 程序必须接受用户输入btw的学生人数等级。

import java.util.Scanner;

public class gradesaverage {

    public static void main(String[] args) {
        int [] grades = new int [20];
        int i;
        int numStudents;

        System.out.print("Enter number of students: ");
        Scanner scanint = new Scanner (System.in);      
        numStudents = scanint.nextInt();        

        for ( i = 1;  i <= grades.length; ++i)
        {
            System.out.println("Enter grade: ");
            grades[i] = scanint.nextInt();
        }
        while(i <= numStudents );

    }

}

1 个答案:

答案 0 :(得分:1)

不确定你的意思,但假设所有输入都是正确的,

int [] grades = new int [numStudents ];

如果在声明和分配numStudents后移动此行,则应该有效。使用可变长度数组的java没有问题。

另请注意 - 您的迭代器i从1开始,而在java数组中从0开始。

public static void main(String[] args) {
    int i;
    int numStudents;
    System.out.print("Enter number of students: ");
    Scanner scanint = new Scanner (System.in);      
    numStudents = scanint.nextInt();
    int [] grades = new int [numStudents]; //the size we wanted
    for ( i = 0;  i < grades.length; ++i) //starting from 0, not 1.
    {
        System.out.println("Enter grade: ");
        grades[i] = scanint.nextInt();
    }
    //print the array - for checking out everyting is ok
    System.out.println(Arrays.toString(grades)); 
}
相关问题