我写了一个代码,用于查找系列中缺少的数字。在这里,我也得到了正确的结果缺少数字,但有例外。例外是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);
}
}
}
}
答案 0 :(得分:2)
如果i == a.length - 1
,表达式z = a[i+1]-a[i];
将生成一个ArrayOutOfBoundsException(因为a[i+1]
超出了数组)。将您的循环限制为i < a.length - 1
答案 1 :(得分:0)
你必须将你的循环运行到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);
}
}
如果break;
...
(x==y)
循环