簡體   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