所以这就是我所拥有的,我试图打印A-Z中的所有数字,但它只打印Z,请帮助和谢谢(使用递归)
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.WriteLine(Convert.ToChar(getAplha(number)));
Console.ReadKey();
}
public static int getAplha(int number=65)
{
if (number==90)
{
return Convert.ToChar(number);
}
return Convert.ToChar(getAplha(number + 1));
}
}
}
答案 0 :(得分:2)
从WriteLine
移除Main
并将其放在getAlpha
的开头,以便打印每个字母,因为每个字母都有一个电话。
答案 1 :(得分:2)
您可以更改方法的返回类型,并像Console.WriteLine(getAplha(65));
public static string getAplha(int number = 65)
{
if (number == 90)
{
return "" + (char)number;
}
return (char)number + getAplha(number + 1);
}
答案 2 :(得分:0)
WriteLine只发生一次,当你" pop"从最深的递归级别回来。 您需要使用getAlpha方法编写。
答案 3 :(得分:0)
您只记录Console.WriteLine
中递归的最后一个值。相反,像这样包装你的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));
}
}
}
答案 4 :(得分:0)
为此,您需要递归方法中的Console.WriteLine
public static void getAplha(int number=65)
{
Console.WriteLine(Convert.ToChar(number));
if (number==90)
{
return;
}
getAplha(number + 1);
}
然后你不需要返回类型。