import java.io.*;
public class sort { private static double num[];
private static String ss;
private static double newss;
private static int m=0;
private static BufferedReader br;
public static void main(String[] args) {
System.out.println("请输入数字,要结束输入请输入0000");
try{
br=new BufferedReader(new InputStreamReader(System.in));
ss=br.readLine();
newss=Double.parseDouble(ss);

}catch(IOException e)
{
e.printStackTrace();
}

do
{

try{
ss=br.readLine();
newss=Double.parseDouble(ss);

num[m]=newss;
m++;
}catch(IOException e)
{
e.printStackTrace();
}
}while(newss!=0000);

}}
语法没有错误,但为什么输入到第二个数字的时候 就会产生这么一个异常:
Exception in thread "main" java.lang.NullPointerException
at sort.main(sort.java:28)

解决方案 »

  1.   

    你确定输入的数字都可以正常转化为 double 类型吗?
      

  2.   

     private static double num[] = new double[20];//这里你没有初始化
      

  3.   

    num没初始化
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;public class sort
    {
        private static List<Double> numList = new ArrayList<Double>();    private static String ss;    private static double newss;    private static int m = 0;    private static BufferedReader br;    public static void main(String[] args)
        {
            System.out.println("请输入数字,要结束输入请输入0000");
            try
            {
                br = new BufferedReader(new InputStreamReader(System.in));
                ss = br.readLine();
                newss = Double.parseDouble(ss);        }
            catch(IOException e)
            {
                e.printStackTrace();
            }        do
            {
                try
                {
                    ss = br.readLine();
                    newss = Double.parseDouble(ss);                numList.add(m, newss);
                    m++;
                }
                catch(IOException e)
                {
                    e.printStackTrace();
                }
            }
            while(newss != 0000);
        }
    }
      

  4.   

    private static double num[]; 这里只是做了声明,并没有创建一个数组,此时num=null;当然会有空指针异常。
      

  5.   

    num[]只是声明了一下,没有分配内存