微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > Eclipse >

运行空指针如何解决?貌似逻辑上没问题?

时间:2014-04-10 09:37  浏览:努力统计中...
运行到main函数的第一个数组赋值总是提示空指针,无法继续。我前一行不是已经进行初始化分配空间了吗?求大神解答,本人大一学生一枚。下面是我的代码。谢谢 importjava.util.Scanner
运行到main函数的第一个数组赋值总是提示空指针,无法继续。我前一行不是已经进行初始化分配空间了吗?求大神解答,本人大一学生一枚。下面是我的代码。谢谢

import java.util.Scanner;
class Foodlist{ //食品列表类
int code;
String name;
double price;
}
public class bls0404 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
/* 欢迎*/System.out.println("Dear customer, welcome to our restaurant. ");
System.out.println("A la carte system below you will use this restaurant. You can enter your dishes like number, the system will automatically calculate the cost of your meal.");
System.out.println("How many meals?(including youself)");//询问人数
int p=sc.nextInt();//保存用餐人数
System.out.println("Your tea fee:"+p*3);//输出茶位费

Foodlist fl[]=new Foodlist[7];//保存菜品
fl[0].code =1;
fl[0].name ="Curry beef with rice";
fl[0].price =40.00;

fl[1].code = 2;
fl[1].name = "Sushi set meal";
fl[1].price = 65.00;

fl[2].code = 3;
fl[2].name = "YangZhou fried rice";
fl[2].price = 45.00;

fl[3].code = 4;
fl[3].name = "Sirloin Steak with Spaghetti";
fl[3].price = 72.00;

fl[4].code = 5;
fl[4].name = "Chicken vegetable roll";
fl[4].price = 42.00;

fl[5].code = 21;//饮料
fl[5].name = "Soft drink";
fl[5].price = 10.00;

fl[6].code = 22;
fl[6].name = "Red wine";
fl[6].price = 15.00;

fl[7].code = 23;
fl[7].name = "Beer";
fl[7].price = 15.00;

for(int i=0;i<=fl.length;i++)//列出菜品
System.out.println("Food code"+fl[i].code+"Food name"+fl[i].name+"Food price"+fl[i].price);

System.out.println("Please enter one code of order:");
int b=sc.nextInt();


System.out.println("Anymore?(0-Yes;1-No)");
int c=sc.nextInt();

}
}



Foodlist fl[]=new Foodlist[7];
这里面现在应该是7个空元素,也就数null
所有在这fl[0].code =1;就出空指针了!


楼上的看看。。

一共7个元素,你都对8个元素赋值了。。。

应该这样写
Foodlist fl[]=new Foodlist[7];//保存菜品
Foodlist  f = new Foodlist  ();
f.code =1;
f.name ="Curry beef with rice";
f.price =40.00;
f1[0] = f ;



就是没有初始化;
话说楼主大一就学Java了?

大一就写代码  不错 前途无量

啊,又懂了点。呵呵。谢谢大家。果然好地方啊。特别感谢1楼和四楼冠名播出。
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------