我写了一个代码来查找串联的缺失数字。在这里,我也得到了正确的结果,缺少数字,但有例外。例外是 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;
循环...