2017-06-22 19 views
2

私の場合、条件がfalseの場合に再起動したいwhileループがあります。これは、私はIPが有効であるかどうかをチェックしているので、ループ全体が正常に実行されているかどうかをチェックしています。そうでなければ、その時点で最初から再起動する必要があります。私は休憩を使用することはできませんし、私はgotoを使用したくないです。あなたの懇願は何ですか?C#while while whileループを再起動

これは私の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よりも、この他にいくつかの解決策を教えてください。

+0

続ける '試してみてください(実行されることはありません)以下skipedされる条件if (IpValidation(ip) == false)コードのために、

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; } } 

これ以上の手段の条件が満たされた場合:あなたはあなたの例は次のようになりますので、ここでcontinueを使用する必要があります'あなたがループを上から続けることを望むならば。 – Enigmativity

答えて

7

あなたは残りの部分をスキップして、ループの先頭に移動します

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

これを「続ける」という言葉を使用する必要があります。

+2

大文字と小文字の区別を覚えておいてください: 'continue'が正しいです。 –

+0

それは働いた!私はこれを前に試してみましたが、うまくいきませんでした。そして、私は1つ以上のブレークがあり、それらをすべて変更したことを知りました...そしてvoula – Scripto

+2

愚かな携帯電話自動車の大文字:( – BugFinder

4

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"); 
} 
3

あなたは(ブレークを使用して、または継続)二つの方法、でこれを行うブレークは完全にループを終了しますすることができ、continueは、ちょうど現在の反復をスキップします。

あなたの質問を読んでください。

+1

大文字と小文字の区別: 'continue'は正しい1。 – Enigmativity