不好意思 前几天上课的时候发现的问题 现在已经没有那个程序的代码了
不过在使用循环来填充数组的值的时候 总会在循环结束跳出的时候显示数组下标越界的异常。原先我们是学C的,没经历过这样的错误 现在了解了异常出现的原理 可是不知道该怎么处理好啊?
比如数组a[5],用for(i=1;1<5;1++)的时候,最后肯定i值会到5啊~~~~不好意思~大家见笑了~~

解决方案 »

  1.   

    数组下标应该从0开始计数吧?即使是C语言也应该如此啊!
    for(int i = 0;i < a.length;i++)
      

  2.   

    如过不知道是否会出现数组越界,或者其他异常,就捕捉一下
    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则会不一样.
    建议你去好好看看书吧,
      

  3.   

    既然数组是a[5],要么你用for(i=1;1<6;i++),要么你用for(int i=0; i < 5; i ++)
      

  4.   

    楼上的说的有问题,如果象你说的for(i = 1 ; i<6 ; i++) 那不就是叫数组的索引从1开始了吗?可是在JAVA里,索引是从0开始的.当你访问i=5的时候,也还是会越界异常的.
      

  5.   

    而且楼主的问题可能问的不对,如果你写的是for(i = 1 ; i < 5 ; i++)这样一般是不会错,只不过他不访问数组的第一个数了,也就是不访问索引为0的数了.
      

  6.   

    楼主不知道是不是你写错了,还是你就是那么写的for(i=1;1<5;1++)这种情况就有问题了,第一,在JAVA里不能对数字直接用++这样的符号,必须要声明的变量可以用,第二,当你打印I的时候I只有一个等于1,后面的和I没关系了,也就等于,你这个是个不全的for循环,
      

  7.   

    恩 这个帖子写得比较急 应该是for(i=0;i<5,i++),我记得我有个印象就是操作数组的语句是在循环体里,循环体外并没有操作数组,可是我很诧异的就是数组越界了(因为印象很不清楚,所以现在也不敢肯定了)
    有没有懂的人告诉我,到底是不是这回事!我现在也想结帖了,可是分不知道该给谁好……
      

  8.   

    for(i=0;i<5,i++),这样写不可能越界吧 毕竟数组长度是5 你的循环也是进行了5次 从a[0]-a[4] 不会出现a[5]的情况的啊 楼主请把错误代码写出来才好判断哦
      

  9.   

    i=5的时候,i<5的条件就不满足了,不会执行循环体
      

  10.   

    三楼的答案非常标准:
    for(int i = 0;i < a.length;i++){}在JAVA里,数据的索引是从0开始的,不是从1开始的,而且用a.length这样是符合规范的,我们应该养成这样的编程习惯!
      

  11.   

    楼主错了,i虽然会到5,但如果你的a[i]是放在for循环里的话,那么当i为5时,循环退出,
    程序没有异常....
      

  12.   

    接上面:
    public class TestArray {
    public static void main(String[] args) {
    int[] a =new int[5] ;
    for(int i=0;i<5;i++){
    System.out.println(a[i]); 
    }
    }
    }
      

  13.   

    for(i=1;1<5;1++)    这个是死循环.......
      

  14.   

    规范一下,定义数组最好用
    类型 [] 数组名=new 定义数组长度
      

  15.   

    for(i=1;1<5;1++)
    ============
    i != 1 这程序能编译通过吗? 1++???????