繁体   English   中英

C#在中间重启一个while循环

[英]C# restart a while loop in the middle

在我的情况下,如果条件为false,我有一个我想重启的while循环。 这是因为我正在检查ip是否有效以及是否然后运行整个循环正常,如果不是,我需要它从那时开始重新开始。 我不能使用休息,我不想使用goto。 你的sugestions是什么?

这是我的代码,我想重新启动while循环。

while (calculateAgain == "y")
{
    Console.Write("Your ip here: ");
    string ip = Console.ReadLine();

    IpValidation(ip);
    if (IpValidation(ip) == false)
    {
        Console.WriteLine("Ugyldig IP og eller Subnet mask!\n");
        // goto or break
    }

在此之后我的代码运行了很多...告诉我除了goto以外的一些解决方案。

你需要使用单词continue

    if (IpValidation(ip) == false)
    {
        Console.WriteLine("Ugyldig IP og eller Subnet mask!\n");
        continue;
    }

这将跳过其余部分并转到循环的顶部。

有继续声明。 如果它被击中它将跳回到循环的开始。

while (calculateAgain == "y")
{
    // ...
    if (IpValidation(ip) == false)
    {
        Console.WriteLine("Ugyldig IP og eller Subnet mask!\n");
        continue;
    }
    Console.WriteLine("This will not be executed when continue is called");
}

您可以通过两种方式执行此操作(通过使用break或continue)break将完全退出循环, continue将跳过当前迭代。

所以通过阅读你的问题。 你需要在这里continue使用,所以你的例子可能如下所示:

while (calculateAgain == "y")
{
    Console.Write("Your ip here: ");
    string ip = Console.ReadLine();

    IpValidation(ip);
    if (IpValidation(ip) == false)
    {
        Console.WriteLine("Ugyldig IP og eller Subnet mask!\n");
        continue;
    }
}

上面的意思是,对于条件if (IpValidation(ip) == false)下面的代码将被满足(如果满足条件,将永远不会被执行)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM