package opt.sime.fifo;public class jcb
{
          char state;  /*W,S*/
          String ID;
          int ts;                  /* 提交时间 */
          int tb;                  /* 开始运行时间 */
          int tc;                  /* 执行时间 */
          float ti;                /* 周转时间 */
          float wi;                /* 带权周转时间 */
          int ntime;               /* 作业所需运行时间 */
          }
package opt.sime.fifo;import java.util.Scanner;
public class fifo 
{
private static int time=0;
private static int p=0;
private float eti=0,etw=0;
    

public static void main(String[] args)
{
Scanner reader=new Scanner(System.in);
     System.out.println("请输入作业数");
     p=reader.nextInt();
     jcb opt[]=new jcb[p];
  for(int i=0;i<p;i++)
{
     
  System.out.println("请驶入作业"+i+"ID");
    opt[i].ID=reader.nextLine();
  System.out.println("请驶入作业"+i+"提交时间");
  opt[i].ts=reader.nextInt();
  System.out.println("请驶入作业"+i+"执行时间");
  opt[i].tc=reader.nextInt();
  
}
}}错误是这样的Exception in thread "main" java.lang.NullPointerException  
at opt.sime.fifo.fifo.main(fifo.java:23)
错在何处呢,何时不理解

解决方案 »

  1.   

    jcb opt[]=new jcb[p];这里只是声明了一个界限为p大小的jcb类的数组
    而这个数组里面是没有内容的
    下面调用了opt[i]是 == null 所以报了空指针
      

  2.   

    首先opt[i].ID=new opt();
    然后opt[i].ID=reader.nextLine();
      

  3.   

    opt[i].ID=new jcb();    要放到for循环里面的第一条语句
      

  4.   

    汗 刚才看错了
    你这个应该是reader为null引发的空指针错误吧 。。
    即是Scanner reader=new Scanner(System.in);
    难道你没输入东西?楼主贴一下错误的那行代码吧 
      

  5.   

    请驶入作业数
    3
    请驶入作业0ID
    Exception in thread "main" java.lang.NullPointerException
    at opt.sime.fifo.fifo.main(fifo.java:24)
      

  6.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner reader = new Scanner(System.in);
    System.out.println("请输入作业数");
    p = reader.nextInt();
    jcb opt[] = new jcb[p];
    for (int i = 0; i < p; i++) {
    jcb j = new jcb();
    System.out.println("请驶入作业" + i + "ID");
    j.ID = reader.nextLine();
    System.out.println("请驶入作业" + i + "提交时间");
    j.ts = reader.nextInt();
    System.out.println("请驶入作业" + i + "执行时间");
    j.tc = reader.nextInt();
    opt[i]=j;
    }
    }
      

  7.   

    opt[i]=new jcb();
    实在不好意思 前面写错了   还是这样写有层次感 个人看法 请无视吧