第23行发生例外情况

时间:2013-01-18 17:32:13

标签: java exception

enter image description here我正在尝试解决一个程序异常一次又一次发生我不知道为什么在这里帮助我是我的代码

import java.util.*;
public class Fashion
{
    public static void main(String args[])
    {
    int sum=0;
    Scanner in=new Scanner(System.in);
    System.out.println("enter the number of judges");
    int x=in.nextInt();
    int a[]=new int[x];
    if((x<20)&&(x%2==1))
       {
       System.out.println("score given by judges");
       for(int i=0;i<x;i++)
         {
         a[i]=in.nextInt();
         }
       }
    int mid=(1+x)/2;
       for(int k=0;k<mid;k++)
       {
        if(a[mid+k]==a[mid-k])    //exception here why 
         {
         sum=sum+a[mid+k];
         }
       }
    System.out.println("the number get by the contestant is "+sum);
    }
}

2 个答案:

答案 0 :(得分:2)

看起来你可能会收到Maroun在评论中回答的ArrayIndexOutOfBoundsException

  

在尝试向内看之前,你应该检查一下你没有超过   数组维度。 (mid-k和mid + k应小于零或   在你的情况下大于x)

答案 1 :(得分:1)

在您的示例中,x为5. a是一个包含5个元素的数组。 mid是3。

在你的for循环中,当k = 2时会有一个迭代,所以mid+k = 5.你的数组只有0到4的元素,所以你得到一个ArrayIndexOutOfBoundsException