C# 中的 TryParse 并使用 while 循环
TryParse in C# and using the while loop
用户输入应在 0 到 10 之间,我想使用 tryparse 检查输入是否正确,如果不正确则应再次提示用户。我的代码如下所示,它只工作一次,但如果用户输入错误的数字,它会再次执行。在这种情况下,我应该把循环放在哪里?
int number;
bool True;
Console.Write("Enter number between 0 t0 10: ");
True = int.TryParse(Console.ReadLine(), out number);
while (number < 0 || number > 10)
{
while (True)
Console.Write("Enter number between 0 t0 10: ");
int.TryParse(Console.ReadLine(), out number);
}
{
Console.WriteLine("Please enter the correct number");
}
return number;
使用 do while .
int i = 0;
do
{
Console.Write("Enter number between 0 t0 10: ");
True = int.TryParse(Console.ReadLine(), out number);
} while (!True);
我会编写与您已有的代码类似的代码,但我会将 True
重命名为 isValid
并使用 do
/while
循环:
int number;
bool isValid = false;
do
{
Console.Write("Enter number between 0 and 10: ");
isValid = int.TryParse(Console.ReadLine(), out number)
&& number >= 0
&& number <= 10;
if (isValid)
{
Console.WriteLine("Please enter the correct number");
}
}
while (!isValid);
更好的是,完全取消 isValid
:
int number;
do
{
Console.Write("Enter number between 0 and 10: ");
if (int.TryParse(Console.ReadLine(), out number) && number >= 0 && number <= 10)
{
break;
}
Console.WriteLine("Please enter the correct number");
}
while (true);
现在,如果数字有效,我们就跳出循环。
P.S。你会看到我交换了周围的数字条件来进行有效性检查,所以 <
变成了 >=
而 >
变成了 <=
.
此外,不要将变量称为 True
。想象一下,您正在阅读一个更长的方法并且遇到了这一行(在您编写它几个月后):
while (True)
这是一个无限循环吧?不好了!它是变量 True
,而不是常量 true
。现在再想象一下,您有 bool True = false;
。如果您阅读速度很快,您可能会误解代码的作用。即使你不是,你也必须付出更多的精神努力来理解正在发生的事情。
用户输入应在 0 到 10 之间,我想使用 tryparse 检查输入是否正确,如果不正确则应再次提示用户。我的代码如下所示,它只工作一次,但如果用户输入错误的数字,它会再次执行。在这种情况下,我应该把循环放在哪里?
int number;
bool True;
Console.Write("Enter number between 0 t0 10: ");
True = int.TryParse(Console.ReadLine(), out number);
while (number < 0 || number > 10)
{
while (True)
Console.Write("Enter number between 0 t0 10: ");
int.TryParse(Console.ReadLine(), out number);
}
{
Console.WriteLine("Please enter the correct number");
}
return number;
使用 do while .
int i = 0;
do
{
Console.Write("Enter number between 0 t0 10: ");
True = int.TryParse(Console.ReadLine(), out number);
} while (!True);
我会编写与您已有的代码类似的代码,但我会将 True
重命名为 isValid
并使用 do
/while
循环:
int number;
bool isValid = false;
do
{
Console.Write("Enter number between 0 and 10: ");
isValid = int.TryParse(Console.ReadLine(), out number)
&& number >= 0
&& number <= 10;
if (isValid)
{
Console.WriteLine("Please enter the correct number");
}
}
while (!isValid);
更好的是,完全取消 isValid
:
int number;
do
{
Console.Write("Enter number between 0 and 10: ");
if (int.TryParse(Console.ReadLine(), out number) && number >= 0 && number <= 10)
{
break;
}
Console.WriteLine("Please enter the correct number");
}
while (true);
现在,如果数字有效,我们就跳出循环。
P.S。你会看到我交换了周围的数字条件来进行有效性检查,所以 <
变成了 >=
而 >
变成了 <=
.
此外,不要将变量称为 True
。想象一下,您正在阅读一个更长的方法并且遇到了这一行(在您编写它几个月后):
while (True)
这是一个无限循环吧?不好了!它是变量 True
,而不是常量 true
。现在再想象一下,您有 bool True = false;
。如果您阅读速度很快,您可能会误解代码的作用。即使你不是,你也必须付出更多的精神努力来理解正在发生的事情。