查找缺失号码时出现数组异常



我写了一个代码来查找串联的缺失数字。在这里,我也得到了正确的结果,缺少数字,但有例外。例外是 arrayindexoutofboundsexception,这可能是可能的,因为我正在增加数组的长度。

代码如下。任何帮助删除该异常...

import java.io.*;
class findarr
{
    public static void main(String args[]) throws IOException
    {
        int a[] = {10,12,14,16,20};
        int x,y,z;
        for(int i=0;i<a.length;i++)
        {
            z = a[i+1]-a[i];
            if(z!=2)
            {
                x = a[i]+2;
                y = a[i+1]-2;
                if(x==y)
                System.out.println(x);
            }
        }
    }
}

如果i == a.length - 1表达式z = a[i+1]-a[i];将生成一个 ArrayOutOfBoundsException(因为a[i+1]超出了数组)。通过i < a.length - 1限制您的循环

你必须运行你的循环直到a.length-1,像这样:

for(int i=0;i<a.length-1;i++)
{
   z = a[i+1]-a[i]; //throws exception because of a[i+1]
   if(z!=2)
   {
        x = a[i]+2;
        y = a[i+1]-2;
        if(x==y)
        System.out.println(x);
   }
}

如果(x==y),您应该break;循环...

最新更新