我几天前刚开始学习C#。当来学习goto语句时,我找到了这样的例子。
ineligible:
Console.WriteLine("Not eligible for voting");
Console.WriteLine("Enter your age");
int age = int.Parse(Console.ReadLine());
if (age < 18)
{
goto ineligible;
}
else
{
Console.WriteLine("Voting request accepted");
}
然后,我像这样更改了代码。
int age = int.Parse(Console.ReadLine());
ineligible:
Console.WriteLine("Not eligible for voting");
if (age < 18)
{
goto ineligible;
}
else
{
Console.WriteLine("Voting request accepted");
}
我得到了无限迭代没有资格投票。迭代的图像
为什么发生迭代而不是打印不符合条件只有一次?
参考: javatpoint - C#(goto 语句(
你不应该在生活中的任何地方使用它。阅读此更改代码后,请尝试一次,学习它,然后忘记它。
为什么您的第一个案例有效?
因为你有 Console.Readline((,所以它会等待你的响应。
ineligible:
Console.WriteLine("Not eligible for voting");
Console.WriteLine("Enter your age");
int age = int.Parse(Console.ReadLine());
if (age < 18)
{
goto ineligible;
}
为什么第二种情况会导致无限循环?
因为你带来了不合格:就在下面的 Console.ReadLine(( 语句。
int age = int.Parse(Console.ReadLine());
ineligible:
Console.WriteLine("Not eligible for voting");
因此,循环将是永远的,它不会期望您的输入或干扰。
再次学习它并忘记它。