C++ での break 対 continue
胡金庫
2023年10月12日
この記事では、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
著者: 胡金庫