C# 标签提供迭代



我几天前刚开始学习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");

因此,循环将是永远的,它不会期望您的输入或干扰。

再次学习它并忘记它。

最新更新