テクニック - 2重ループを抜ける方法(C++)

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2021年11月24日 (水) 18:06時点におけるWiki (トーク | 投稿記録)による版 (文字列「<source lang="c++">」を「<syntaxhighlight lang="c++">」に置換)
ナビゲーションに移動 検索に移動

概要

C++で多重ループから抜ける場合、以下の方法が考えられる。

  1. 終了フラグを使用する。
  2. goto文を使用する。
  3. 2重ループの箇所のみ関数化する。
  4. ラムダ式を使用する。


ここでは、4.のラムダ式を使用して2重ループを抜けるサンプルコードを記載する。


サンプルコード

<syntaxhighlight lang="c++">
[&]{
      for (int i = 0; i < 5; i++)
      {
         for (int j = 0; j < 5; j+)
         {
            std::cout << "[" << i << ", " << j << "]" << std::endl;
            if (3 <= i && 4 <= j)
            {
               std::cout << "end" << std::endl;
               return;
            }
         }
      }
   }();
</source>