0
这是我的代码:用值提前退出递归?
public static double AskForNums(int i, double max = 0)
{
if (i <= 12)
{
Console.WriteLine("Input value for number " + i);
double input = double.Parse(Console.ReadLine());
if (input > max)
{
max = input;
}
AskForNums(i + 1, max);
}
return max;
}
我试图索要12个输入和返回的最高值。在最后递归max
包含最高值。然而,它然后再次经历了12次(递归),并最终让我获得第一个值。
我表弟的作业是要求用户输入12个数字并打印出最高数字,而且他不允许使用循环或数组。
然后我开始怀疑循环是否可能没有提供的循环(for/while等)。
问题是否可以保留从递归峰值部分的值?我尝试的任何代码都会减少,因为max
变量会通过递归的每个级别进行更改。有没有办法早日退出价值?
提示:你忽略了递归调用的返回值,这使得它毫无意义。问问你自己可能想用返回的值做什么... –