use*_*127 4 c# recursion loops
我得到了我的手腕,因为在一项任务中,当输入错误发生时,我有一个方法调用.我不知道如何使用或使用什么而不是我写的代码.我需要帮助才能找到正确的方法.
我喜欢编码所以我只需要以正确的方式轻推!:)
我写的代码看起来像这样.
private void SumTheNumbers()
{
Console.Write("Please give the value no "+ index + " :");
if (false == int.TryParse(Console.ReadLine(), out num))
{
//Errormessage if the user did not input an integer.
Console.WriteLine("Your input is not valid, please try again.");
Console.WriteLine();
sum = 0;
SumTheNumbers();
}
else
{
//Calculate the numbers given by user
sum += num;
}
}
Run Code Online (Sandbox Code Playgroud)
个人而言,我喜欢这样的风格,但它是低效的(并可能导致堆栈溢出,如果用户输入无效输入的时间数量庞大).您的教练可能希望您使用while循环:
Console.Write("Please give the value no "+ index + " :");
while (false == int.TryParse(Console.ReadLine(), out num))
{
//Errormessage if the user did not input an integer.
Console.WriteLine("Your input is not valid, please try again.");
Console.WriteLine();
sum = 0;
}
//Calculate the numbers given by user
sum += num;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这false ==一点非常非惯用,并会引起大多数团队的注意(作为旁注:如果你的导师建议你写这个,他/她可能来自不同的语言背景,这是防止意外的任务;相信我,在C#土地上没有必要或正常).这看起来更典型:
while (!int.TryParse(Console.ReadLine(), out num))
{
// etc.
}
Run Code Online (Sandbox Code Playgroud)
实现这一目标的标准方法是使用while循环.
int num;
while (!int.TryParse(Console.ReadLine(), out num))
{
Console.WriteLine("Your input is not valid, please try again.\n");
}
Run Code Online (Sandbox Code Playgroud)