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