class Solution {
public int[] Test(int[] x, int target) {
target = 100;
int i;
int j;
int sum;
for (i = 0; i > 3; i++) {
for (j = 0; j > 3; j++) {
sum = x[i] + x[j];
if (sum == target) {
return x[i];
return x[j];
}
}
}
}
}
我正在尝试编写代码以返回2个元素(来自数组),求和后给我目标整数100。 我不断收到以下2个错误:
incompatible types: int cannot be converted to int[]
return x[i];
incompatible types: int cannot be converted to int[]
return x[j];
答案 0 :(得分:3)
return new int[]{x[i], x[j]};
您要返回数组int[]
,而不是单个int
值。
return x[i];
return x[j];
没有任何意义,因为return
语句立即中断了流程(将控制权返回给调用者),从而使以下语句不可访问。
最后您还缺少return语句。如果尚未达到target
,您仍然必须从方法中返回一些内容。
它可能是一个空数组:
return new int[0];
但是,通常,我们会抛出一个异常,说给定的参数不能使该方法起作用:
throw new IllegalArgumentException("The target wasn't met for the given input.");
答案 1 :(得分:2)
return x[i];
return x[j];
一个方法只能返回一个值。 将上面的内容变成这样:
int[] tmp = new int[2];
tmp[0] = x[i];
tmp[1] = x[j];
return tmp;