数组索引造成的空指针异常

当你放在下面的时候,就会造成空指针异常,在第一遍循环的时候就在输出语句的这一行提示有空指针,这是什么原因呢,因为按照程序的顺序,z=0 ,可以进入循环,然后开始new h[0]这个对象,接着因为不满足两个

if条件句,所以往下走,这时候z就是等于0+1为1了,所以输出语句里面的是h[1].name,但是前面只有h[0](h[1]要在第二遍循环才会出现),所以就会出现找不到报错异常情况,要解决这个情况,则要做些许调整,

因为数组的索引是从0开始的,所以,你可以设定z的初始值为-1,因为while循环要+1的,这样子的话,那不是刚好为0,所以调整的地方为int z =-1;然后z=z+1放到while语句下面第一行。并且判断语句的要改为z<2.

还有一种解法是,只需把z=z+1;放到输出语句后面,这样不是就先输出再+1了,前后的索引就对得上了,就不会报错了。

还是要多注意运行程序的逻辑,还要要知道问题出在什么地方了,要把程序理一遍,你就知道出错在哪了,明白报错的意思,以及地方。

 

posted @ 2020-04-26 13:32  zmlgoes  阅读(276)  评论(0编辑  收藏  举报