我的代码不断发出编译错误,说“局部变量newi可能没有被初始化”,我无法弄清楚如何解决它。 任务是:给定一个任意长度的int数组,返回一个新的前两个元素数组。如果数组小于长度2,则使用任何存在的元素。返回数组无法正常工作
我的代码是:
public int[] frontPiece(int[] nums) {
int[] newi;
if (nums.length >= 2)
{
for(int i = 0; i < 2; i++)
{
newi = new int[2];
newi[i] = nums[i];
}
}
else
{
for(int i = 0; i < nums.length; i++)
{
newi = new int[nums.length];
newi[i] = nums[i];
}
}
return newi;
}
编译器是正确的。如果'nums'为空(长度为零),那么'newi'不会被初始化。你需要提供一个初始值(如'null'或'{}')。 – Thilo
此外,您正在每个循环迭代中创建一个新数组。这看起来不正确。 – Thilo
[为什么需要初始化局部变量](http://stackoverflow.com/q/415687/4506140) –