在我的情况下,如果条件为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
}
在此之后我的代码运行了很多... 除了转到之外,请告诉我一些解决方案。
答案 0 :(得分:7)
您需要使用continue
if (IpValidation(ip) == false)
{
Console.WriteLine("Ugyldig IP og eller Subnet mask!\n");
continue;
}
这将跳过剩下的部分并转到循环的顶部。
答案 1 :(得分:4)
有继续声明。如果它被击中它将跳回到循环的开始。
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");
}
答案 2 :(得分:3)
您可以通过两种方式执行此操作(通过使用break或continue)break将完全退出循环,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)
以上意思是,对于条件{{1}},如果满足条件,下面的代码将被删除(永远不会被执行)