当前位置: 代码迷 >> Java相关 >> 学生管理系统中关于添加学生的问题
  详细解决方案

学生管理系统中关于添加学生的问题

热度:225   发布时间:2013-04-10 10:23:47.0
学生管理系统中关于添加学生的问题
public void great(String name,int age,Student[] arr){//创建学生信息数组
        Student stu=new Student();
        stu.setName(name);
        stu.setAge(age);
        int i=this.setIndex(arr);
        stu.setOn(i);
        if(i==1234){
            System.out.println("没位置了!");
        }else{
            arr[i]=stu;
        }
    }
    public int setIndex(Student[] arr){//返回数组为空的下标
        for(int i=0;i<arr.length;i++){
            if(arr[i]==null){
                return i;
            }
        }
        return 1234;
    }
//为什么以下代码不能执行以上代码的功能

public void great(Student[] arr){
    Scanner in=new Scanner(System.in);
    System.out.println("请输入学生姓名:");
    String name=in.next();
    System.out.println("请输入学生年龄::");
    int age=in.nextInt();
    for(int i=0;i<arr.length;i++){
        if(arr[i]==null){
            arr[i].setName(name);
            arr[i].setAge(age);
            arr[i].setOn(i);
            return;
        }
    }
    System.out.println("没位置了!");
}
在假设其他条件都成立的情况下..[local]2[/local]
</arr.length;i++){
</arr.length;i++){
搜索更多相关的解决方案: arr  public  return  null  

----------------解决方案--------------------------------------------------------
for(int i=0;i<arr.length;i++){
        if(arr[i]==null){ //问题在这里 你arr[i]都是null了怎么还能写进去值呢?要新建一个对象 赋值进去
            arr[i].setName(name);
            arr[i].setAge(age);
            arr[i].setOn(i);
            return;
        }
    }
----------------解决方案--------------------------------------------------------
回复 2楼 hhwz
不是因为是空的,所以可以往arr[i]里面赋值吗?
----------------解决方案--------------------------------------------------------
这是一个数组  arr[Student] 里面是Student对象

当 arr[i] ==null 时  ( {Student,Student,null,null}实际是这样 的)
你把NULL当Student 获取其属性肯定错了

----------------解决方案--------------------------------------------------------
回复 3楼 mndl
谢谢,虽然还是有点乱,但是测试了一下,确实像你说的那样..
----------------解决方案--------------------------------------------------------
  相关解决方案