以下方法的返回语句难倒我:用||递归返回语句在它
public static boolean groupSum(int start, int[] nums, int target, int max) {
if (start >= nums.length) { return target == 0; }
// can't use max value
else if (nums[start] == max) {
return groupSum(start + 1, nums, target, max);
}
else {
return groupSum(start + 1, nums, target - nums[start], max) ||
groupSum(start + 1, nums, target, max);
}
}
如果你注意到,return语句具有|| “或”条款,并且我对这里返回的条款感到困惑......如果你能提供一个关于它如何工作的解释,那就太好了。
一个'return'声明_returns_一个值,而不是一个条款。 “||”是一个应用于两个操作数并产生一个值的运算符。 –
那么哪些值被返回?左侧还是右侧的值?它基于什么? – user3730244
@ user3730244 - 结果是两个操作数的比较,而不是任何一个操作数 – kolossus