【发布时间】:2016-01-22 04:06:09
【问题描述】:
我的代码不断遇到编译错误,提示“局部变量 newi 可能尚未初始化”,我不知道如何修复它。 任务是:给定一个任意长度的 int 数组,返回一个包含其前 2 个元素的新数组。如果数组小于长度 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或{})。 -
另外,您在每次循环迭代中创建一个新数组。这似乎不对。
标签: arrays