2017-06-16 9 views
-3

do-whileループの中で、私はforループを使ってベクトルの値を読み取っています。このベクトルには繰り返し値があります。 if文を使ってforループを止めたい。 C++のdo-whileループのif文を使ってforループを終了する方法はありますか?

do { 
 
    /* some statement1*/ 
 
    for(int i = 0; i < n; ++i) 
 
     { 
 
     if (vec[i] == a) 
 
      { 
 
      /* some statement2*/ 
 
      } 
 
     } //here i want to terminate the for loop once it finds value a in vector 
 
    } while (statement3);
ブレークを使用しました。 while条件も終了します。

+0

あなたはその後、 'break'として' return'を使用し、ラムダを使用すると、すぐにそれを呼び出すことができます。 –

+2

あなたはいくつかの部分が欠落しているように見えます。 [最小、**完全**、および検証可能な例](https://stackoverflow.com/help/mcve)を入力してください。 – InternetAussie

+2

breakキーワードが何を誤解していると思いますか?breakは、最も内側にある最も内側のループからだけブレークします。それはループの複数の層からあなたを壊すことはありません。 –

答えて

2

コードに複数の構文エラーがあります。つまり、内側のループ/ if条件用の閉じ括弧がありません。閉じ括弧は1つだけです。

do 
{ 
    /* some statement 1 */ 
    for(int i = 0; i < n; ++i) 
    { 
     if (vec[i] == a) 
     { 
      /* some statement 2 */ 
      break; 
     } 
    } 

} while (condition); 

そして、それが動作するはずです:ここではそれがあるべきbreakを使用して、コードの正しいバージョンです。 break内側はforループのみ - 外側はdo-whileではありません。

1

このように使用break

do { 
    /* some statement1*/ 
    for (int i = 0; i < n; ++i) { 
    if (vec[i] == a) { 
     break; 
    } 
    } 
} while (statement3); 
関連する問題