[英]C#: How to prevent all “if” statements from being executed consecutively
我有一个使用Visual Studio和控制台模板的C#程序。 我所有的if语句都连续运行。 如果条件为真,我只希望评估if语句的块作用域之一,而运行一个条件时忽略其他条件。
这是我所拥有的:
Console.WriteLine("What is your age?");
string age = Console.ReadLine();
int ageInt;
Int32.TryParse(age, out ageInt);
if (ageInt >= 17)
{
Console.WriteLine("You are rather young!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
if (ageInt >= 18)
{
Console.WriteLine("You are young, but technically an adult!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
if (ageInt >= 21)
{
Console.WriteLine("You are of legal drinking age! A semi-adult!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
if (ageInt >= 30)
{
Console.WriteLine("You are a true adult!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
当应该为每个if语句显示消息时,控制台将仅显示第一个if语句,然后仅运行其他每个if语句。 谁能帮助我找出如何更改代码以执行我想要的事情?
解决方案:我需要做的就是颠倒if语句的顺序,并使其他if语句成为“ else if”语句,如下所示:
if (ageInt == 100)
{
Console.WriteLine("You are really old!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
else if (ageInt >= 62)
{
Console.WriteLine("You should retire!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
else if (ageInt >= 30)
{
Console.WriteLine("You are a true adult!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
else if (ageInt >= 21)
{
Console.WriteLine("You are of legal drinking age! A semi-adult!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
您需要做两件事。
else if
来确保仅执行其中一个块。 代码如下所示:
if (ageInt >= 30)
{
Console.WriteLine("You are a true adult!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
else if (ageInt >= 21)
{
Console.WriteLine("You are of legal drinking age! A semi-adult!");
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
// ...
您必须取消订单,因为如果您的年龄> 30岁,那么所有这些检查都将运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.