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
變量會通過遞歸的每個級別進行更改。有沒有辦法早日退出價值?
提示:你忽略了遞歸調用的返回值,這使得它毫無意義。問問你自己可能想用返回的值做什麼... –