为了账号安全,请及时绑定邮箱和手机立即绑定

​为什么会出现Exception in thread "main" java.lang.NullPointerException

​为什么会出现Exception in thread "main" java.lang.NullPointerException

WentworthPeach 2016-11-18 18:02:20
package demo; import java.util.Scanner; public class DEMO1002 {  static int N,i,max,min;  static int a[];   public static void main(String[] args){ System.out.println("请输入数据!"); Scanner input=new Scanner(System.in); N=input.nextInt(); for(int i=0;i<N;i++){      a[i]=input.nextInt(); if(a[i]<a[i+1]){ max=a[i+1]; min=a[i]; } }     System.out.println("这组数据中最大值为:"+max+"  这组数据中最小值为:"+min); }   }
查看完整描述

3 回答

?
慕粉13431556588

TA贡献1条经验 获得超0个赞

int a[] 数组的长度是固定的 而且是不能改变的,你这里的数组一开始是需要给定长度 才行 

查看完整回答
反对 回复 2016-11-19
?
Yexiaomo

TA贡献152条经验 获得超157个赞

问题出在:   for 循环中的 if 判断条件, 

因为 在第一次输入数据时:

a[i] 可能会有值,  ( a[i] 也就是 a[0] )

但是 a[i+1] 一定不会有值 , 里面是 null , ( a[i+1] 也就是 a[1] )

所以程序一旦运行 就会出现 null 异常

查看完整回答
反对 回复 2016-11-18
?
蜂之谷

TA贡献564条经验 获得超863个赞

a没有初始化

查看完整回答
反对 回复 2016-11-18
  • WentworthPeach
    WentworthPeach
    必须要初始化吗?数组的元素是不确定的,有用户从键盘输入的,该怎么办?
  • 蜂之谷
    蜂之谷
    那也得初始化呀
  • 3 回答
  • 1 关注
  • 1602 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信