数组定义错误

时间:2013-10-04 00:14:01

标签: java arrays

这段代码出了什么问题?

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

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

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:2)

请使用{和}

你写过:

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

这意味着:

int [] c仅在您的数组a包含两个或更多元素时定义。

但你总是返回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;