用于创建具有递增名称的对象的数组

时间:2015-10-13 11:47:22

标签: java arrays object increment

所以我希望sArr在if和for之后有一个数字,每次循环通过时都会增加。我不知道我做错了什么,能有人解释一下吗?

import java.util.*;
public class StudentTest {


  public static void main(String[] args){
  Scanner in = new Scanner(System.in);
  String id, name, gender, address;
  Student[] sArr = new Student[4];
  int age;
    for(int i=0; i>=sArr.length(); i++){
      System.out.println("student id.");
      id = in.nextLine();
      in.nextLine();
      System.out.println("Sutdent name.");
      name = in.nextLine();
      in.nextLine();
      System.out.println("Gender.");
      gender = in.nextLine();
      in.nextLine();
      System.out.println("Address.");
      address = in.nextLine();
      in.nextLine();
      System.out.println("Age");
      age = in.nextInt();

      Student sArr[i] = new Student(id, name, gender, age, address);
      s2.display();
    }
  }
}

这段代码给了我这些错误:

--------------------Configuration: <Default>--------------------
C:\StudentTest.java:31: error: ']' expected
        Student sArr[i] = new Student(id, name, gender, age, address);
                     ^
C:\Users\Bart\Desktop\Bart Kosinski_2886295_Assignment01\StudentTest.java:31: error: illegal start of expression
        Student sArr[i] = new Student(id, name, gender, age, address);
                      ^
2 errors

Process completed.

1 个答案:

答案 0 :(得分:1)

更改

Student sArr[i] = new Student(id, name, gender, age, address);

sArr[i] = new Student(id, name, gender, age, address);

Student sArr[i]是一个(无效的)数组声明。您已经提前声明了数组(在Student[] sArr = ...中)。现在,您要为数组的索引分配Student引用。

这将解决编译错误。你应该解决的另一件事是循环的条件。

for(int i=0; i>=sArr.length(); i++)

应该是

for(int i=0; i<sArr.length(); i++)

否则循环将永远不会执行。