数组索引造成的空指针异常
Posted zmlgoes
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组索引造成的空指针异常相关的知识,希望对你有一定的参考价值。
当你放在下面的时候,就会造成空指针异常,在第一遍循环的时候就在输出语句的这一行提示有空指针,这是什么原因呢,因为按照程序的顺序,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了,前后的索引就对得上了,就不会报错了。
还是要多注意运行程序的逻辑,还要要知道问题出在什么地方了,要把程序理一遍,你就知道出错在哪了,明白报错的意思,以及地方。
以上是关于数组索引造成的空指针异常的主要内容,如果未能解决你的问题,请参考以下文章