C++ for文 処理を繰り返すサンプル(break/continue)

C++のfor文で処理を繰り返すサンプルです。

目次

for文 for文 / for文のサンプル
break ループを途中で終了する(break)
  2重ループ(入れ子)のときにbreakを使用する
continue ループで処理をスキップする(continue)
  2重ループ(入れ子)のときにcontinueを使用する

for文

for (初期化式; 条件式; 増減式){
  繰り返される箇所
}
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。繰り返しはループとも呼ばれます。
  • 初期化式は、最初に1回だけ実行されます。
  • 使用する変数をカウンター変数またはループ変数といいます。変数名はiやjがよく使用されます。
  • 条件式がtrueの間、処理を繰り返します。
  • 増減式でカウンター変数/ループ変数の値が変わります。
  • 条件がfalseになるとループ処理を終了します。

for文のサンプル

#include <iostream>
using namespace std;

int main() {
	for (int i = 0; i < 3; i++) {
		cout <<  i << "\n"; // 0 1 2が出力される
	}
	return 0;
}

5行目は、初期化式(int i = 0)によりiは0から始まります。
増減式(i++)によりiの値は、1ずつ増えていきます。
条件式(i <3)がtrueの間は処理を繰り返し、iが3になるとfalseになるので終了します。
6行目は、0,1,2が出力されます。

ループを途中で終了する(break)

  • for文でbreakを使用するとループ処理から抜けます。(そのブロックから抜けます)
  • 「{」(波括弧) から「}」までをブロックといいます。
#include <iostream>
using namespace std;

int main() {
	for (int i = 0; i < 3; i++) {
		if (i == 1) {
			break;
		}
		cout << "i =" << i << "\n"; // i=0が出力される
	}
	return 0;
}

7行目のbreakでfor文を抜けます。
9行目は、0のみ出力されます。

2重ループ(入れ子)のときにbreakを使用する

#include <iostream>
using namespace std;

int main() {
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 2; j++) {
			if (j == 0) {
				break;
			}
			cout << "j =" << j << "\n"; //出力なし
		}
		cout << "i =" << i << "\n"; //i=0 i=1が出力される
	}
	return 0;
}

5,6行目にfor文があり2重ループ(入れ子)になっています。
8行目のbreakは、内側のfor文のみ抜けます。

ループで処理をスキップする(continue)

  • for文でcontinueを使用すると、ループ処理の先頭に戻ります。(ブロックの先頭位置に戻ります)
  • 「{」(波括弧) から「}」までをブロックといいます。
#include <iostream>
using namespace std;

int main() {
	for (int i = 0; i < 3; i++) {
		if (i == 1) {
			continue;
		}
		cout << "i =" << i << "\n"; // i=0 i=2が出力される
	}
	return 0;
}

7行目のcontinueでループ処理の先頭の5行目に戻ります。
9行目は、0と2が出力されます。

2重ループ(入れ子)のときにcontinueを使用する

#include <iostream>
using namespace std;

int main() {
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 2; j++) {
			if (j == 0) {
				continue;
			}
			cout << "j =" << j << "\n"; // j=1,j=1が出力される
		}
		cout << "i =" << i << "\n"; // i=0,i=1が出力される
	}
	return 0;
}

5,6行目にfor文があり2重ループ(入れ子)になっています。
8行目のcontinueは、内側のfor文の先頭の6行目に戻ります

関連の記事

C++ if文 条件分岐を行うサンプル
C++ switch文のサンプル
C++ while文とdo while文のサンプル

△上に戻る