首页 新闻 会员 周边 捐助

做了个输入数据的方法(数组),出错了

0
[待解决问题]

package text;
import java.util.Scanner;
public class StudentSystem
{

public static void main(String[] args) 
{
    int x;
    student a=new student();
    System.out.println("请输入要输入数据的人数");
    Scanner p = new Scanner(System.in);
    x=p.nextInt();
            a.AddDate(x);
    /*System.out.println("1.查看数据"+'\n'+"2.修改数据"+'\n'+"3.退出");*/
} 

}
class student{
String name;
int id;
double java;
double network;
double English;
double math;
public void AddDate(int x) //x表示输入数据的人数
{
student [] arr=new student[x+1]; //为了i一开始输出变成1

        for(int i=1;i<arr.length;i++)
            {
                System.out.println("第"+i+"个人的数据  姓名  学号    java  网络  英语 数学");
                Scanner sc = new Scanner(System.in);
                arr[i].name=sc.nextLine();
                arr[i].id = sc.nextInt();
                arr[i].java = sc.nextDouble();
                arr[i].network = sc.nextDouble();
                arr[i].English = sc.nextDouble();
                arr[i].math = sc.nextDouble();
            }   
 }

public void check()
{

}

public void exit() {

System.out.println("-------已退出--------");

}

}


有大佬可以告诉我一下为什么会这样吗?我实在是不知道为什么会这样

老萌新51的主页 老萌新51 | 菜鸟二级 | 园豆:210
提问于:2020-01-07 01:23
< >
分享
所有回答(1)
0

arr 里的元素都是null,所以执行arr[i].name的时候报空指针异常了。

会长 | 园豆:12463 (专家六级) | 2020-01-07 09:14

嗯嗯,我早上起来百度到了加个arr[i]=new student();就好了。我还以为sudent arr=new student[x];会给地址。。

支持(0) 反对(0) 老萌新51 | 园豆:210 (菜鸟二级) | 2020-01-07 09:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册