下面程序执行完了又错误public class Study{
public static void main(String args[]){

int[] num = {15,56,156,213,32,21,5};
for(int i = 0; i <= num.length; i ++){
System.out.printf("num[%d] = %d\n", i , num[i]);
}
}
}错误内容是这样的
num[0] = 15
num[1] = 56
num[2] = 156
num[3] = 213
num[4] = 32
num[5] = 21
num[6] = 5
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at study.Study.main(Study.java:23)
请高手指教。

解决方案 »

  1.   

    数组越界  i <= num.length 改成 i < num.length
      

  2.   

    数组下标越界了,其实它有的内容只有0~num.length-1。故只要将for循环中的改为i<num.length即可…
      

  3.   

    数组是从0位开始取得,而长度是从1开始算的,所以不能<=num.length,只能<num.length就够了
      

  4.   

    for(int i = 0; i < num.length; i ++) 看到这个ArrayIndexOutOfBoundsException ,就一定要检查数组数组是否越界,,
      

  5.   

    java.lang.ArrayIndexOutOfBoundsException 表示数组越界的错误
      

  6.   

    数组下标越界。我怎么觉得打印输出的语句怪怪的。C语言和JAVA混合体?
      

  7.   

    java.lang.ArrayIndexOutOfBoundsException 表示数组越界的错误
    记得要把一些常用的异常记住!
      

  8.   

    建议楼主在发生Exception后,到jdk api查相关Exception信息。
      

  9.   

    数组下标越界异常,是刚开始学的时候最容易犯的错误。
    i的值不可能等于数组的长度,数组是从0开始的,所以i能取到num.length-1
      

  10.   

    System.out.printf……表示从来没这么用过,不知道有这个方法。
      

  11.   

    System.out.printf……最后的f不知何物?求解释!
      

  12.   

    public class Study{
    public static void main(String args[]){int[] num = {15,56,156,213,32,21,5};
    //for(int i = 0; i <= num.length; i ++){
    //粗心
    for(int i = 0; i < num.length; i ++){System.out.printf("num[%d] = %d\n", i , num[i]);


    }
      

  13.   

    循环程序 编写时,要注意的四件事情。1.循环的对象。不要编了半天,循环的对象搞错了。
          一般在循环遍历Map时,Key和Value,或者,Valu本身是List时,会让人糊涂。
    2.循环的开始位置。
          有些时候,循环不能从0开始。
    3.循环的结束位置。
          就像楼主失误的地方,没有在预期的结束位置,进行结束。
    (2和3可以统称为 边界问题)
    4.循环的趋向。
          也就是说,每一次循环,都要趋向结束条件。与边界问题不同,趋向指明了循环是能够结束的。
          循环没有向结束条件趋近,很可能造成死循环。以上都为本人的经验,写出来,大家参考参考。呵呵。
      

  14.   

    数组越界 i <= num.length 改成 i < num.length
      

  15.   

    这很明显是数组越界的问题,java中数组的索引是从0开始的,如果取值=数组.length的话,那就出现了数组越界的问题了,就会出现上面的异常。其实很多语言的数组都是从0开始的
      

  16.   

    int[] num = {15,56,156,213,32,21,5};
    for(int i = 0; i < num.length; i ++){
    System.out.printf("num[%d] = %d\n", i , num[i]);
    }

    太低级了
      

  17.   

    num.length=7
    所以出错误
    没有num[7]
      

  18.   

    数组的下标是从0开始的,所以数组的length如果是7,那么数组下标是从0~6.
      

  19.   

    这个没想通...居然能编译通过?先不说越界的问题,就这个输出语句:
    System.out.printf();是C里的啊?
    java面也能用?C里面应该也不是这么调用的吧,
    printf()在C里面应该在<stdio>里面的用System.out也掉不出来吧.....
      

  20.   

    数组下标越界 ArrayIndexOutOfBoundsException