为什么说该方法必须返回int类型?返回值是整数
public static int search(int[] nums)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("What value do you want?");
int value = keyboard.nextInt();
for(int i=0;i<nums.length;i++)
{
if(nums[i] == value)
return nums[value];
else
return -1;
}
}
答案 0 :(得分:1)
请确保在跳过循环时知道返回的类型。
答案 1 :(得分:0)
如果nums
为空或空,则for循环永远不会被执行,因此您不返回任何内容
这样做
public static int search(int[] nums)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("What value do you want?");
int value = keyboard.nextInt();
for(int i=0;i<nums.length;i++)
{
if(nums[i] == value)
return nums[value];
else
return -1;
}
return 0; // default value
}
答案 2 :(得分:0)
如果nums[]
为空数组或为null。 (但是null值会产生一个nullpointer异常nums.length
。)在这种情况下,循环将不会执行,并且它将是一个void返回,所以为了避免这种情况,你必须声明一个默认的return语句。
答案 3 :(得分:0)
虽然循环中的返回类型 循环的类型为int
,但您的循环不能保证实际运行,并且您没有返回值(因此类型)在你的循环不运行的场景中。
答案 4 :(得分:-1)
并非所有路径都会返回某些内容
您可以通过在for
循环后添加返回或使用返回变量来避免这种错误。它也看起来像你试图在数组中搜索用户输入的数字。如果是这样,您不需要其他情况,或只检查nums
中的第一个数字。
public static int search(int[] nums)
{
int ret = -1;
Scanner keyboard = new Scanner(System.in);
System.out.println("What value do you want?");
int value = keyboard.nextInt();
for(int i=0;i<nums.length;i++)
{
if(nums[i] == value)
{
ret = nums[value];
break;
}
}
return ret;
}