gpt4 book ai didi

java - return语句后代码继续执行

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:06 24 4
gpt4 key购买 nike

我写了一个算法,递归计算给定数字的平方和,如果和最终等于 1,我希望它返回 true。

我验证了我计算的总和是否正确,如果给定的数字是 19,下一个数字将是 82,然后是 68,最后是 100,这应该返回 true。我检查了程序是否进入了 if(sum==1) 并且确实如此。如果我在 return false; 之前打印总和,它会奇怪地在返回 false 之前按降序 (1, 68, 82) 打印结果总和。

class Solution {
public boolean isHappy(int n) {
int sum =0;
int digit =0;
while (n>0) {
digit =n%10;
sum=sum+digit*digit;
n=n/10;
System.out.println(sum);
}
if(sum==1){
return true;
}
else{
isHappy(sum);
}
return false;
}
}

我的代码有什么问题?为什么和为1还不停,还得返回true?

最佳答案

不返回 isHappy(sum) 的返回值可能是问题所在。查看这是否按预期工作:

class Solution {
public boolean isHappy(int n) {
if (n == 0) return false;

int digit, sum = 0;

while (n > 0) {
digit = n % 10;
sum += digit * digit;
n /= 10;
System.out.println(sum);
}

if(sum == 1) return true;
else return isHappy(sum);
}
}

关于java - return语句后代码继续执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57464723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com