我一直在搞清楚这个主要的编程概念......如何用循环替换重复的代码?
示例,:
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,但我不知道如何将其指向用户对象。
思考?一些参考文献的方向确实有帮助。我想要真正理解这个概念。
答案 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();
}