java - 需要扫描仪输入阵列

标签 java arrays input

有谁知道如何为数组设置用户输入,我在任何地方都找不到该命令。我的数组“等级”有 20 个位置。我不太确定“grades.length”功能,但我认为它会提示 20 次。但我添加了一个 while 语句来覆盖但它完全忽略了 FOR 语句。如果我可以为数组设置用户输入,我可以摆脱 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)); 
}

关于java - 需要扫描仪输入阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20324558/

相关文章:

java - 自定义形状的透明按钮

java - Selenium:模式内容中的按钮不可点击

python - 动态 python 用户输入到单独的 C 程序

validation - SSIS 2005 如何以编程方式解决错误 "input column has lineage id that was not previously used in the data flow task"

input - 营销人员的 Sitecore Web 表单 : Change Name/ID of fields that is generated

java - java中的执行命令

java - 如何阻止 Eclipse 调试我们的库代码

ios - 使用函数重新加载表/数组?

php - 如何处理php爆炸数组中的空值?

arrays - VBA Excel - 从另一个工作簿中读取数据