【发布时间】:2021-07-23 05:26:26
【问题描述】:
我正在尝试解决一个问题,即我必须在数组中添加两个元素以等于目标整数值。我认为我的代码是正确的,并且会返回所需的目标,但是 return 语句没有返回任何值。为什么会这样,我该如何解决?
谢谢
public static void main(String[] args) {
int[] nums= {2,7,11,15};
int target= 9;
}
public int twoSum(int[] nums, int target) {
int result=0;
for(int i = 0; i<nums.length ;i++){
for(int j=i+1; j<nums.length ;j++ ){
result = nums[i] + nums[j];
if (result == target){
return result;
}else{
break;
}
}
}
}
}
【问题讨论】:
-
内部循环(
j之上的循环)永远不会执行超过一次的迭代:要么返回,要么中断。如果这确实是您想要的,您可以删除循环。 -
如果
result等于target,则返回似乎不是特别有用:你知道它的值是什么,它与target相同。相反,将返回类型设为boolean,这样如果找到(在循环内)就可以返回true;如果不是(在循环之后),则为 false。 -
这甚至不应该编译,因为如果你从不进入循环,你就没有返回。
-
如果方法已编译(在方法末尾缺少
return),该方法仍然不会返回任何内容,因为永远不会调用该方法。
标签: java for-loop return conditional-statements