C#标签给出了一个迭代

问题描述 投票:-1回答:1

我前几天刚开始学习C#。什么时候开始学习 到了 语句,我找到了这样的例子。

        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语句)

c# iteration goto
1个回答
0
投票

你在生活中不应该在任何地方使用这个。看完这个改一下代码,试一次,学会了就忘了。

为什么你的第一个案例能成功?

因为你有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()语句的下面加上了ineligible:。

int age = int.Parse(Console.ReadLine());

        ineligible:
            Console.WriteLine("Not eligible for voting");

所以这个循环将是永远的,它不会期待你的输入或干扰。

再次学习它,然后忘记它。

© www.soinside.com 2019 - 2024. All rights reserved.