这段代码出了什么问题?
if(a.length >= 2)
int[] c = new int[]{a[0],a[1]};
return c;
它似乎一直认为上面代码的第二行是错误的,特别是int []语句(定义一个数组)。数组a已定义。
答案 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;