package characterBack;import java.util.Scanner;public class character { public static void main(String[] ags)
{
System.out.println("请输入数");
Scanner sc=new Scanner(System.in);
double n=0;
double sum=0.0;
boolean compputer=true;
try{double temp=sc.nextDouble(); for(int i=0;i<ags.length;i++)
{
temp=Double.parseDouble(ags[i]);
sum+=temp;
System.out.println("总数:"+sum);
} if(compputer)
{
n=sum/ags.length;
System.out.println("平均数是:"+n);
}
}catch(Exception e)
{
System.out.println("对不起,你输入了非数字字符");
compputer=false;

}
}
}运行结果是
请输入数
23
平均数是:NaN
为什么是NaN呢

解决方案 »

  1.   

    这句话出现了错误
    n=sum/ags.length;
     
    此时 agr是个ags String[0]  (id=16) 就是说没有长度,长度为0,你用一个数除以一个0,当然会出现NaN,
    我debug的结果:ags String[0]  (id=16)
    sc Scanner  (id=30)
    n NaN
    sum 0.0
    compputer true
    temp 23.0
      

  2.   

    main方法传入的ags是空数组,长度为0,
    n=sum/ags.length; 
    这句除数为0,结果必然是NaN.