C# c语言中使用递归打印A-Z字母#

C# c语言中使用递归打印A-Z字母#,c#,recursion,C#,Recursion,这就是我为什么这么做的原因,我试图打印A-Z中的所有数字,但它只打印Z,请帮助和感谢(使用递归) }从Main中删除WriteLine,并将其放在getAlpha的开头,这样每个字母都会被打印,因为每个字母都有一个调用。当您从最深的递归级别“弹出”回来时,WriteLine只发生一次。 您需要从getAlpha方法写入。您只在控制台中记录递归的最后一个值。WriteLine。相反,请像这样包装您的书写线: using system; using System.Collections.Generi

这就是我为什么这么做的原因,我试图打印A-Z中的所有数字,但它只打印Z,请帮助和感谢(使用递归)


}

Main
中删除
WriteLine
,并将其放在
getAlpha
的开头,这样每个字母都会被打印,因为每个字母都有一个调用。

当您从最深的递归级别“弹出”回来时,WriteLine只发生一次。
您需要从getAlpha方法写入。

您只在
控制台中记录递归的最后一个值。WriteLine
。相反,请像这样包装您的书写线:

using system;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace AtoZRecursion
{ 
    class Program
    {  
        static void Main(string[] args)
        {
            int number=65;
            getAplha(number);

            Console.ReadKey();
        }

        public static int getAplha(int number=65)
        {
            if (number==90)
            {
                Console.WriteLine(Convert.ToChar(number));
                return Convert.ToChar(number);
            }

            Console.WriteLine(Convert.ToChar(number));
            return Convert.ToChar(getAplha(number + 1));
        }
    }
}

为此,您需要递归方法内部的
控制台.WriteLine

public static void getAplha(int number=65)
{
    Console.WriteLine(Convert.ToChar(number));
    if (number==90)
    {
        return;
    }

    getAplha(number + 1);
}

然后您就不需要返回类型了。

您可以更改方法的返回类型并像
Console.WriteLine(getAplha(65))那样调用它


你只有一个<代码>控制台。写行,它不在递归方法中。请考虑以下问题中的一个答案来标记你的问题。
public static void getAplha(int number=65)
{
    Console.WriteLine(Convert.ToChar(number));
    if (number==90)
    {
        return;
    }

    getAplha(number + 1);
}
public static string getAplha(int number = 65)
{
    if (number == 90)
    {
        return "" + (char)number;
    }
    return (char)number + getAplha(number + 1);
}