数组引用数据类型这块不熟悉,很蒙的,明白为啥但是理解的不透彻。
老师留的作业是用数组外部引用数据类型实现代码。
Vpoll[] voteArray = new Vpoll[5]; //引用数组
Scanner sc = new Scanner(System.in); //控制台输入参赛者的信息
for(int i=0;i<voteArray.length;i++)
{
String votename = " ";
System.out.print("第"+(i+1)+"个参赛者的编号:"+(i+1)+" \n");//输入学号
Vpoll votenum = new Vpoll();
votenum.Vnum =i+1;
voteArray[0] = votenum;//参赛者的编号
System.out.print(" 请输入参赛者姓名:");
Vpoll Vone = new Vpoll();
Vone.Vname = sc.next();
voteArray[1]= Vone;
System.out.print(" 请输入参赛者年龄:");
Vpoll Vtwo = new Vpoll();
Vtwo.Vold = sc.next();
voteArray[2]= Vtwo;
// Vpoll str = new Vpoll();
// str = voteArray[i];
System.out.print("以下为参赛选手\n"+votenum.Vnum+"."+Vone.Vname+" "+Vtwo.Vold+"岁\n");
}
我想实现循环输入名字、年龄,我数组长度为5,我输入5次之后显示名单。
但是我现在的代码问题是运行的是输入一次显示一次名单,如果把 System.out.print("以下为参赛选手\n"+votenum.Vnum+"."+Vone.Vname+" "+Vtwo.Vold+"岁\n");放在for循环外面enum.Vnum这几个引用就不好用,如果把我输入姓名、年龄的代码放到外面我又没有办法让他循环输入。。。。请问大神我该怎么更改?重要的是我的思路是不是错误的?
/*
参赛者类
*/
public class Contestant {
private int age; // 参赛者年龄
private String name; // 参赛者名字
private int id; // 参赛者编号
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
// 参赛者类的有参构造方法
public Contestant(int age, String name, int id) {
this.age = age; // 给参赛者年龄赋值
this.name = name; // 给参赛者名字赋值
this.id = id; // 给参赛者编号赋值
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Contestant[] contestants = new Contestant[5]; // 参赛者类数组
Scanner input = new Scanner(System.in);
// 给参赛者循环赋值
String name = "";
int age = 0;
int id = 0;
for (int i = 0; i < contestants.length; i++) {
System.out.println("第" + (i + 1) + "个参赛者");
id = i + 1;
System.out.println("请输入参赛者的名字:");
name = input.next();
System.out.println("请输入参赛者的年龄:");
age = input.nextInt();
contestants[i] = new Contestant(age, name, id);
System.out.println();
}
System.out.println("以下为参赛选手:");
System.out.println("1.编号\t2.名字\t3.年龄(岁)");
for (int i = 0; i < contestants.length; i++) {
System.out
.println(contestants[i].getId() + "\t"
+ contestants[i].getName() + "\t"
+ contestants[i].getAge());
}
}
数组是相同类型数据的集合