[英]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.