「テクニック - 2重ループを抜ける方法(C++)」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
(Wiki がページ「2重ループを抜ける方法(C++)」を「テクニック - 2重ループを抜ける方法(C++)」に、リダイレクトを残さずに移動しました)
(文字列「/source」を「/syntaxhighlight」に置換)
 
(同じ利用者による、間の1版が非表示)
10行目: 10行目:


== サンプルコード ==
== サンプルコード ==
  <source lang="c++">
  <syntaxhighlight lang="c++">
  [&]{
  [&]{
       for (int i = 0; i < 5; i++)
       for (int i = 0; i < 5; i++)
25行目: 25行目:
       }
       }
     }();
     }();
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:C++]]
[[カテゴリ:C++]]

2021年11月24日 (水) 18:06時点における最新版

概要

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

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


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


サンプルコード

 [&]{
       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;
             }
          }
       }
    }();