问答详情
源自:6-1 什么是数组

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at dream.geshu.main(geshu.java:15)为什么会出现这样的错误?

ackage dream;


public class geshu {


/**

* 求奇数个数和偶数个数

*/

public static void main(String[] args) {

int sum=0;

int c=0;

int a[]=new int[]{1,2,3,4,5,6,7,8};

boolean bool=false;

for(int i=0;i<9;i++)

{

if(a[i]%2==0)

{

sum=sum+1;

bool=true;

}

else

{

c=c+1;

}

}

if(bool)

{

System.out.print("奇数的个数:"+sum);

}

else

{

System.out.print("偶数的个数:"+c);

}

}


}


提问者:慕粉3932450 2016-09-05 15:03

个回答

  • 渴望飞翔的猪
    2016-09-05 16:12:32
    已采纳

    for(int i=0;i<9;i++)中数组a中元素{1,2,3,4,5,6,7,8}明显只有8个,你写i<9,肯定会报数组下标越界的错误,所以改成i<8,或者i<a.length;

  • _河畔老人
    2016-09-19 19:10:57

    数组越界

  • 勇往直前3
    2016-09-05 18:54:08

    数组越界,数组中8个数,for循环从0开始,到<=7或<8即可,不知道数组长度就用a.length

  • 舜砣
    2016-09-05 18:32:54

    索引是从0开始的你的数组是8个数,索引就是0-7    i<=7;

  • 机智的马里奥
    2016-09-05 15:58:05

    把i<9改成i<8

  • qq_雪化梅开_03925620
    2016-09-05 15:51:10

    未导包 

  • ziom
    2016-09-05 15:49:22

    下标越界异常,把for循环中的 i<9改成 i<a.length