la déclaration de retour de la méthode suivante m'a déconcerté:déclaration de retour récursive avec || dans ce
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);
}
}
si vous remarquez, la déclaration de retour a une || «ou», et je suis confus quant à savoir quelle clause est renvoyée ici ... si vous pouviez fournir une explication sur la façon dont cela fonctionne, ce serait formidable.
Une déclaration 'return' _returns_ une valeur, et non une clause. Le '||' est un opérateur qui est appliqué à deux opérandes et produit une valeur. –
alors quelle valeur est retournée? la valeur sur le côté gauche ou le côté droit? et sur quoi est-il basé? – user3730244
@ user3730244 - Le résultat est une comparaison des deux opérandes, pas de l'un des opérandes – kolossus