Java 如何将void方法结果存储到int数组方法中

Java 如何将void方法结果存储到int数组方法中,java,arrays,Java,Arrays,我试图将公共静态void readGrades()的结果存储到方法数组int[]grades中。但我没有这样做。我尝试了ArrayList和其他东西,但不幸的是 public static int[]grades; public static void main(String[] args) { readGrades(); } public static void readGrades(){ Scanner in=new Scanner(System.in); S

我试图将公共静态void readGrades()的结果存储到方法数组int[]grades中。但我没有这样做。我尝试了ArrayList和其他东西,但不幸的是

public static int[]grades;
public static void main(String[] args) {
        readGrades();
}
public static void readGrades(){
    Scanner in=new Scanner(System.in);
    System.out.print("How many students there are : ");
    int numberOfStudents=in.nextInt();
    for(int i=1;i<=numberOfStudents;i++){
    System.out.print("Enter the grade of the students : ");
    int grades1=in.nextInt();
    grades1++;
}
公共静态int[]等级;
公共静态void main(字符串[]args){
readGrades();
}
公共静态void readGrades(){
扫描仪输入=新扫描仪(系统输入);
System.out.print(“有多少学生:”);
int numberOfStudents=in.nextInt();
对于(int i=1;i请尝试以下方法:

public static int[] grades;
public static void main(String[] args) {
        readGrades();
}
public static void readGrades(){
    Scanner in=new Scanner(System.in);
    System.out.print("How many students there are : ");
    int numberOfStudents=in.nextInt();
    grades=new int[numberOfStudents];
    for(int i=0;i<numberOfStudents;i++){
        System.out.print("Enter the grade of the students : ");
        int grade=in.nextInt();
        grades[i]=grade;
     }
}
公共静态int[]等级;
公共静态void main(字符串[]args){
readGrades();
}
公共静态void readGrades(){
扫描仪输入=新扫描仪(系统输入);
System.out.print(“有多少学生:”);
int numberOfStudents=in.nextInt();
成绩=新的整数[学生人数];

对于(int i=0;i您不需要声明
grades[]static
,您也可以使用
本地声明的int[]
进行声明,如下所示:

public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.print("How many students there are : ");
        int numberOfStudents=in.nextInt();
        int[] grades = new int[numberOfStudents];
        readGrades(grades, in);
        // here you can write code to play with grades array
}
public static void readGrades(int[] grades, Scanner in){
    for(int i=0;i<numberOfStudents;i++){
         System.out.print("Enter the grade of the students : ");
         grades[i]=in.nextInt();
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
System.out.print(“有多少学生:”);
int numberOfStudents=in.nextInt();
int[]年级=新int[学生人数];
阅读等级(等级,单位);
//在这里,您可以编写代码来使用grades数组
}
公共静态void readGrades(int[]等级,扫描仪输入){

对于(int i=0;i您需要学习如何在java中使用数组。您没有在grades[]数组中存储数据。此代码>>int grades1=in.nextInt();grades1++;>>只创建一个变量并在下一次迭代中重新初始化它}你不能,因为
void
方法不会返回任何内容。@Christian如果你仔细观察代码,你会发现
grades
是静态字段,所以这个方法是一种静态设置器,这意味着它应该返回void。@Pshemo如果其中一个不是静态的,基本上是不可能的?@Pshemo是的,它的工作原理如下一个setter,但是它。干杯,它帮助了我:)这将使索引[0]处于未使用状态。@Sanjeev是的,我知道。你可以通过从numberOfStudents中删除+1并在循环中设置I=0来改变它,这也很有帮助,干杯。但是我被要求按照我展示的那样做。