C#标签给出迭代
C# label gives an iteration
我几天前才开始学习 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");
}
我得到了无限迭代没有资格投票。 Image of the iteration
为什么发生迭代而不是只打印一次不合格?
你不应该在生活中的任何地方使用它。看完这个改代码,试一次,学了就忘了。
为什么你的第一个案例成功了?
因为你有 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");
所以循环将永远存在,它不会期待您的输入或干扰。
再学一遍算了。
我几天前才开始学习 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");
}
我得到了无限迭代没有资格投票。 Image of the iteration
为什么发生迭代而不是只打印一次不合格?
你不应该在生活中的任何地方使用它。看完这个改代码,试一次,学了就忘了。
为什么你的第一个案例成功了?
因为你有 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");
所以循环将永远存在,它不会期待您的输入或干扰。
再学一遍算了。