2

这段代码有什么问题?

if(a.length >= 2)
    int[] c = new int[]{a[0],a[1]};
return c;

它似乎一直认为上面代码的第二行是错误的,特别是 int[] 语句(定义一个数组)。数组 a 已定义。

4

2 回答 2

7

该变量c仅存在于if块的范围内。您可以return立即使用。

if(a.length >= 2)
    return new int[]{a[0], a[1]};
于 2013-10-04T00:15:08.633 回答
2

请使用 { 和 }

你写:

if(a.length >= 2)
    int[] c = new int[]{a[0],a[1]};
return c;

这表示:

仅当您的数组 a 具有两个或多个元素时才定义 int[] c。

但是你总是返回 c。

如果您使用 { 和 },您的代码将变为:

if(a.length >= 2) {
    int[] c = new int[]{a[0],a[1]};
}
return c;

你读得更好你的错误。

解决方案:

int[] c = null;
if(a.length >= 2) {
    c = new int[]{a[0],a[1]};
}
return c;
于 2013-10-04T00:17:09.803 回答