wangluan123
wangluan123
采纳率50%
2020-05-06 17:00

使用for循环来输入3个学生信息,用i来获取循环的下标然后传入数组里面,可是刚我运行了一下,只有最后一个值传入进数组了,之前输入的两个值没有传入?

已采纳

使用for循环来输入3个学生信息,用i来获取循环的下标然后传入数组里面,可是刚我运行了一下,只有最后一个值传入进数组了,之前输入的两个值没有传入

这个是属性和方法类_

图片说明

这个是测试类

图片说明

这个是运行结果

图片说明

附上我写的问题代码

Student类

public class Student {
    String name[]; // 姓名
    int age[]; // 年龄

    public void addName(String dName,int j){ // 添加姓名的方法
        name = new String[3];
        name[j] = dName;
    }

    public void addAge(int dage,int j){ // 添加年龄的方法
        age = new int[3];
        age[j] = dage;
    }
}

StuTest测试类

public class StuTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student stu = new Student();
        for(int i = 0;i < 3;i++){
            System.out.println("请输入学生姓名:");
            Scanner sc = new Scanner(System.in);
            String name = sc.next();
            System.out.println("请输入学生年龄:");
            int age = sc.nextInt();
            stu.addName(name,i);
            stu.addAge(age,i);
        }

        for(int j = 0;j < 3;j++){
            System.out.println(stu.name[j]+"\t"+stu.age[j]);
        }
    }


}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • shshjj 舍得心境 1年前

    你的addname和addage方法有问题,每次调用都会new 一个string和int对象。

    public class Student {
    String name[]= new String[3]; // 姓名
    int age[]= new int[3]; // 年龄

    public void addName(String dName,int j){ // 添加姓名的方法
    
        name[j] = dName;
    }
    
    public void addAge(int dage,int j){ // 添加年龄的方法
    
        age[j] = dage;
    }
    

    }

    点赞 评论 复制链接分享