Java - 使用静态代码和对象创建循环

时间:2013-12-22 19:21:50

标签: java list loops

我一直在搞清楚这个主要的编程概念......如何用循环替换重复的代码?

示例,:

System.out.println("Name:");
String name = input.next();

System.out.println("Age");
int age = input.nextInt();

System.out.println("Sex");
double sex= input.next();

System.out.println("Location:");
String location= input.next();

System.out.println("Subscribe:");
boolean subscribe= input.nextBoolean();
user.set(name, age, sex, location); // user object would hold this information
user.set(subscribe);

我创建了一个带有mutators和accessors来处理返回的类,但我无法弄清楚如何在不调用user1,user2,user3等的情况下不为五个不同的用户编写上述代码。

我玩过使用for循环计数最多为5,但我不知道如何将其指向用户对象。

思考?一些参考文献的方向确实有帮助。我想要真正理解这个概念。

2 个答案:

答案 0 :(得分:3)

将此代码包装在一个函数中,该函数将从输入中获取数据,创建一个新用户并将其返回:

 public User getUser() {
    Scanner input = new Scanner(System.in);

    User user = new User();

    System.out.println("Name:");
    String name = input.next();

    System.out.println("Age");
    int age = input.nextInt();

    System.out.println("Sex");
    double sex= input.next();

    System.out.println("Location:");
    String location= input.next();

    System.out.println("Subscribe:");
    boolean subscribe= input.nextBoolean();
    user.set(name, age, sex, location); // user object would hold this information
    user.set(subscribe);

    return user;
}

然后你可以使用它:

  • 您可以使用对象数组

    User[] users = new User[5];
    

然后你可以循环:

    for (int i=0; i<5; i++) {
        users[i] = getUser();
    }
  • 您可以使用对象的ArrayList

    List<User> list = new ArrayList<User>();
    
    for (int i=0; i<5; i++) {
        list.add(getUser());
    }
    

答案 1 :(得分:0)

首先创建一个用户数组:

User[] users = new User[5] ; //Where 5 is the number of objects you want to store.
for (int i = 0 ; i < 5 ; i++){ //Fill it
  users[0] = new User();
}

现在您可以使用数组:

for (User user : users){
  user.set(stuff);
  user.do();
}