JAVA关于数组的一个问题
不好意思 前几天上课的时候发现的问题 现在已经没有那个程序的代码了
不过在使用循环来填充数组的值的时候 总会在循环结束跳出的时候显示数组下标越界的异常。原先我们是学C的,没经历过这样的错误 现在了解了异常出现的原理 可是不知道该怎么处理好啊?
比如数组a[5],用for(i=1;1 <5;1++)的时候,最后肯定i值会到5啊~~~~
不好意思~大家见笑了~~
------解决方案--------------------数组下标应该从0开始计数吧?即使是C语言也应该如此啊!
for(int i = 0;i < a.length;i++)
------解决方案--------------------这个……你还是读书吧,我要是告诉你了,你会出事的。
------解决方案--------------------如过不知道是否会出现
数组越界,或者其他异常,就捕捉一下
try{
for(i=1;1 <5;1++)
}catch(Exception e){
System.out.println(e.toString());
}
需要注意的是,int a[5]; 与 a[5]代表的意思是不一样的
int a[5]表示定义长度为5的一个int 数组,而 a[5]则是访问 a数组的第6个元素,(a[0]是访问第一个),当然,VB则会不一样.
建议你去好好看看书吧,
------解决方案--------------------既然数组是a[5],要么你用for(i=1;1 <6;i++),要么你用for(int i=0; i < 5; i ++)
------解决方案--------------------楼上的说的有问题,如果象你说的for(i = 1 ; i <6 ; i++) 那不就是叫数组的索引从1开始了吗?可是在JAVA里,索引是从0开始的.当你访问i=5的时候,也还是会越界异常的.
------解决方案--------------------for(i=0;i <5,i++),这样写不可能越界吧 毕竟数组长度是5 你的循环也是进行了5次 从a[0]-a[4] 不会出现a[5]的情况的啊 楼主请把错误代码写出来才好判断哦
------解决方案--------------------i=5的时候,i <5的条件就不满足了,不会执行循环体
------解决方案--------------------三楼的答案非常标准:
for(int i = 0;i < a.length;i++){
}
在JAVA里,数据的索引是从0开始的,不是从1开始的,而且用a.length这样是符合规范的,我们应该养成这样的编程习惯!
------解决方案--------------------楼主错了,i虽然会到5,但如果你的a[i]是放在for循环里的话,那么当i为5时,循环退出,
程序没有异常....
------解决方案--------------------for(i=1;1 <5;1++) 这个是死循环.......
------解决方案--------------------规范一下,定义数组最好用
类型 [] 数组名=new 定义数组长度
------解决方案--------------------for(i=1;1 <5;1++)
============
i != 1 这程序能编译通过吗? 1++???????