C++ での break 対 continue
 
この記事では、C++ で break 文と continue 文を使い分ける方法について複数の方法を示します。
break ステートメント演算子を使用してループ本体を終了させる
    
continue と同様の break 文はジャンプ文と呼ばれ、プログラムの実行の流れを中断させるために利用されています。この場合、break は for ループ文を終了させるために利用されています。なお、break に到達して実行されると、プログラムはループ本体を離れて次の文 cout << item << "3"から続行されています。break は反復や switch 文と併用しなければならず、最も近いループ/switch にのみ影響を与えます。
#include <iostream>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::string;
using std::vector;
int main() {
  vector<string> arr1 = {"Gull", "Hawk"};
  for (auto &item : arr1) {
    cout << item << " 1 " << endl;
    for (const auto &item1 : arr1) {
      cout << item << " 2 " << endl;
      if (item == "Hawk") {
        break;
      }
    }
    cout << item << " 3 " << endl;
  }
  return EXIT_SUCCESS;
}
出力:
Gull 1
Gull 2
Gull 2
Gull 3
Hawk 1
Hawk 2
Hawk 3
ループ本体の一部をスキップするために continue 文を使用する
continue 文は、現在のループの反復を終了させて次の反復の実行を開始するために利用できる言語機能です。コンティニュー文は for、while、do while ループでのみ使用できます。文が複数の入れ子になったループブロックの内部に置かれている場合、continue は内部のループブロックの反復処理のみを中断し、条件式の評価に進みます。
次の例では、現在の vector 要素が Hawk と等しい場合に continue 文を実行しています。実行されると、プログラムは for ループ式を評価し、現在のところ vector の中に他の要素が残っているかどうかを調べます。真ならば cout << item << " 2 " 行が実行され、そうでなければ cout << item << " 3 " に達します。
#include <iostream>
#include <vector>
using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::string;
using std::vector;
int main() {
  vector<string> arr1 = {"Gull", "Hawk"};
  for (auto &item : arr1) {
    cout << item << " 1 " << endl;
    for (const auto &item1 : arr1) {
      cout << item << " 2 " << endl;
      if (item == "Hawk") {
        continue;
      }
    }
    cout << item << " 3 " << endl;
  }
  cout << endl;
  return EXIT_SUCCESS;
}
出力:
Gull 1
Gull 2
Gull 2
Gull 3
Hawk 1
Hawk 2
Hawk 2
Hawk 3
        チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
    
著者: 胡金庫
    
