繁体   English   中英

需要阵列的扫描仪输入

[英]need scanner input for array

有谁知道如何为数组设置用户输入,我在任何地方都找不到该命令。 我的阵列“成绩”有20个位置。 我不太了解“ grades.length”功能,但我认为它会提示20次。 但是我添加了一个while语句来覆盖它,而完全忽略了FOR STATEMENT。 如果我可以为数组设置用户输入,则可以摆脱while语句...程序必须接受用户输入的学生数的分数。

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 );

    }

}

不确定您的意思,但假设所有输入正确,

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)); 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM