Recursion 递归问题&x2B+;参数不为';当int=5时,t加1
为什么“K”不能高于5?输出从0、1、2、3、4开始,循环到5Recursion 递归问题&x2B+;参数不为';当int=5时,t加1,recursion,Recursion,为什么“K”不能高于5?输出从0、1、2、3、4开始,循环到5 class Program { static void Main(string[] args) { int k = 0; loop1(k); } static void loop1 (int k) { Console.WriteLine(k);
class Program
{
static void Main(string[] args)
{
int k = 0;
loop1(k);
}
static void loop1 (int k)
{
Console.WriteLine(k);
k++;
while (k <= 5)
{
loop1(k);
}
}
}
类程序
{
静态void Main(字符串[]参数)
{
int k=0;
第1(k)条;
}
静态void loop1(int k)
{
控制台写入线(k);
k++;
while(k递归规则之一是中断条件。在代码中没有中断条件,因为您使用的是while
循环。将其替换为if
,您的代码将不再循环到无穷大
另一个规则是更接近目标。由于您希望显示大于5的数字,并且在该停止之后,您需要在条件后增加k
的值
递归函数的修改版本:
static void loop1 (int k)
{
Console.WriteLine(k);
if (k <= 5)
{
loop1(++k);
}
}
static void loop1(int k)
{
控制台写入线(k);
if(k递归规则之一是中断条件。在代码中没有中断条件,因为您正在使用while
循环。将其替换为if
,您的代码将不再循环到无穷大
另一个规则是更接近目标。由于您希望显示大于5的数字,并且在该停止之后,您需要在条件后增加k
的值
递归函数的修改版本:
static void loop1 (int k)
{
Console.WriteLine(k);
if (k <= 5)
{
loop1(++k);
}
}
static void loop1(int k)
{
控制台写入线(k);
if(k)必须使用条件而不是像while
这样的循环,用if
.ty替换它。if工作正常,但我无法理解“while”和“do-while”有什么问题。我会尝试在回答中进一步解释问题。你必须使用条件而不是像while
,用if
.ty替换它。if可以正常工作,但我无法理解“while”“do while”有什么问题。我会尝试在回答中进一步解释问题。