2016-12-21 14 views
-3

問題は、whileの部分がなくてもdo whileループを書くことができないということです。何とかやりませんか?do whileループでスキップする方法は?

// 9. Keep adding numbers untill you add number 7 twice in a row . 
int a; 
int b; 

do 
{ 
     Console.WriteLine("add number:"); 
     a = int.Parse(Console.ReadLine()); 
     Console.WriteLine("add number:"); 
     b = int.Parse(Console.ReadLine()); 
     if (a == 7 && b == 7) 
     { 
      break; 
      Console.WriteLine("end"); 

     } 
} 
+2

「while(true){...}」 –

+0

私はalfieの助けを借りて –

答えて

7

これは、それは両方の値があると認めるときは、ループが自動的に終了になりますあなたの中

while(a != 7 || b != 7) 
{ 
    Console.WriteLine("add number:"); 
    a = int.Parse(Console.ReadLine()); 
    Console.WriteLine("add number:"); 
    b = int.Parse(Console.ReadLine()); 
} 
Console.WriteLine("end"); 

で条件を持っているだろう、これを行うための最善の方法を1として7

@アレクシーの答えは、あなたはまた、条件がないことを作ることができる、とだけを含むtrue

これは上記のコードと同じですが、各ループの開始時に値が7であるかどうかをチェックする代わりに、ループ内で手動で終了するまで無限ループします。

また、私は使用しています

while(/*condition*/) 
{ 
    //code here 
} 

これは多少違った動作をしていますが、使用している構文の方が短いバージョンです。上記のコードサンプルでは、​​ループが入力されたときに条件が満たされない場合、以下のコード

do 
{ 
    //code here 
} 
while(/*condition*/); 

は関係なく、常にかどうかの、少なくとも一度do内部に含まれるコードを実行する任意のコードを実行することはありませんしながら、条件が満たされているかどうか

0

あなたは2つの可能性があります。 Alfieが既に言ったように、条件をwhile -partに直接設定するか、無限ループを使用してください。

while(true) 
{ 
    if(a == 3) break; 
    if(b == 7) break; 
    // some more code 
} 

時にはあなたcan'tもちろん、このコードは非常に不自然であり、容易にif(a == 3 || b == 7) breakで置き換えることができるが、(または:あなたは、例えば、あなたのループに複数の出口のパスを持っている場合、これは特に便利ですあなたのすべての条件を1つにまとめてください。何らかの条件で反復処理を中断したいが、例えば、コードのネストを減らすために、continueを別のコンディションで反復したい場合は、これをもっと便利にすることができます。

関連する問題