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

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
(Wiki がページ「2重ループを抜ける方法(C++)」を「テクニック - 2重ループを抜ける方法(C++)」に、リダイレクトを残さずに移動しました)
(文字列「<source lang="c++">」を「<syntaxhighlight lang="c++">」に置換)
10行目: 10行目:


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

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

概要

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>