[C++] if文とループ処理を組み合わせたbreakの使い方
C++では、if
文とループ処理を組み合わせることで、特定の条件を満たしたときにループを中断することができます。
この中断にはbreak
文を使用します。
例えば、for
ループやwhile
ループ内でif
文を用いて条件をチェックし、その条件が真であればbreak
を実行することで、ループを即座に終了させることが可能です。
これにより、無駄なループの繰り返しを避け、効率的なプログラムを作成することができます。
- if文とfor、while、do-whileループでのbreakの使用例
- ネストされたループでのbreakの使い方
- 複数条件でのbreakの使用方法
- 無限ループからの脱出におけるbreakの活用法
- ループ内でのエラーチェックとbreakの実践例
if文とループ処理を組み合わせたbreakの使い方
C++において、break
文はループを途中で終了させるための重要な機能です。
特に、if
文と組み合わせることで、特定の条件が満たされたときにループを抜けることができます。
ここでは、for
ループ、while
ループ、do-while
ループでのbreak
の使用例を紹介し、さらにネストされたループでのbreak
の使い方についても解説します。
if文とforループでのbreakの使用例
for
ループは、特定の回数だけ繰り返し処理を行うのに適しています。
if
文とbreak
を組み合わせることで、特定の条件が満たされたときにループを終了させることができます。
#include <iostream>
int main() {
// 1から10までの数をループ
for (int i = 1; i <= 10; ++i) {
// iが5になったらループを終了
if (i == 5) {
break;
}
std::cout << "Number: " << i << std::endl;
}
return 0;
}
Number: 1
Number: 2
Number: 3
Number: 4
この例では、i
が5になった時点でbreak
文が実行され、ループが終了します。
if文とwhileループでのbreakの使用例
while
ループは、条件が真である限り繰り返し処理を行います。
if
文とbreak
を使うことで、動的にループを終了させることが可能です。
#include <iostream>
int main() {
int i = 1;
// iが10以下の間ループ
while (i <= 10) {
// iが5になったらループを終了
if (i == 5) {
break;
}
std::cout << "Number: " << i << std::endl;
++i;
}
return 0;
}
Number: 1
Number: 2
Number: 3
Number: 4
この例では、i
が5になった時点でbreak
文が実行され、ループが終了します。
if文とdo-whileループでのbreakの使用例
do-while
ループは、少なくとも一度はループを実行することが保証されています。
if
文とbreak
を組み合わせることで、特定の条件でループを終了できます。
#include <iostream>
int main() {
int i = 1;
// 少なくとも一度はループを実行
do {
// iが5になったらループを終了
if (i == 5) {
break;
}
std::cout << "Number: " << i << std::endl;
++i;
} while (i <= 10);
return 0;
}
Number: 1
Number: 2
Number: 3
Number: 4
この例では、i
が5になった時点でbreak
文が実行され、ループが終了します。
ネストされたループでのbreakの使用
ネストされたループでは、break
文は最も内側のループのみを終了させます。
外側のループを終了させるには、フラグ変数を使う方法があります。
#include <iostream>
int main() {
bool exitFlag = false;
// 外側のループ
for (int i = 1; i <= 3; ++i) {
// 内側のループ
for (int j = 1; j <= 3; ++j) {
std::cout << "i: " << i << ", j: " << j << std::endl;
// jが2になったら内側のループを終了
if (j == 2) {
exitFlag = true;
break;
}
}
// フラグが立っていたら外側のループも終了
if (exitFlag) {
break;
}
}
return 0;
}
i: 1, j: 1
i: 1, j: 2
この例では、j
が2になった時点で内側のループが終了し、フラグ変数exitFlag
を使って外側のループも終了しています。
応用例
break
文は、単にループを終了させるだけでなく、さまざまな応用が可能です。
ここでは、複数条件でのbreak
の使用、無限ループからの脱出、ループ内でのエラーチェック、ユーザー入力に基づくループ終了について解説します。
複数条件でのbreakの使用
if
文を組み合わせることで、複数の条件を満たした場合にbreak
を使用することができます。
これにより、より柔軟なループ制御が可能になります。
#include <iostream>
int main() {
// 1から10までの数をループ
for (int i = 1; i <= 10; ++i) {
// iが5または7になったらループを終了
if (i == 5 || i == 7) {
break;
}
std::cout << "Number: " << i << std::endl;
}
return 0;
}
Number: 1
Number: 2
Number: 3
Number: 4
この例では、i
が5または7になった時点でbreak
文が実行され、ループが終了します。
無限ループからの脱出におけるbreakの活用
無限ループは、特定の条件が満たされるまで続ける必要がある場合に便利です。
break
文を使うことで、条件が満たされたときにループを終了させることができます。
#include <iostream>
int main() {
int i = 1;
// 無限ループ
while (true) {
std::cout << "Number: " << i << std::endl;
// iが5になったらループを終了
if (i == 5) {
break;
}
++i;
}
return 0;
}
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
この例では、i
が5になった時点でbreak
文が実行され、無限ループが終了します。
ループ内でのエラーチェックとbreak
ループ内でエラーチェックを行い、エラーが発生した場合にbreak
文を使ってループを終了させることができます。
これにより、エラー処理を効率的に行うことができます。
#include <iostream>
int main() {
int numbers[] = {1, 2, 3, -1, 5}; // -1はエラーを示す
int size = sizeof(numbers) / sizeof(numbers[0]);
for (int i = 0; i < size; ++i) {
// エラーが発生したらループを終了
if (numbers[i] < 0) {
std::cout << "Error: Negative number encountered!" << std::endl;
break;
}
std::cout << "Number: " << numbers[i] << std::endl;
}
return 0;
}
Number: 1
Number: 2
Number: 3
Error: Negative number encountered!
この例では、配列内に負の数が見つかった時点でbreak
文が実行され、ループが終了します。
ユーザー入力に基づくループ終了
ユーザーの入力に基づいてループを終了させることも可能です。
これにより、ユーザーの意図に応じた柔軟なプログラムを作成できます。
#include <iostream>
int main() {
int input;
// ユーザーが0を入力するまでループ
while (true) {
std::cout << "Enter a number (0 to exit): ";
std::cin >> input;
// 0が入力されたらループを終了
if (input == 0) {
break;
}
std::cout << "You entered: " << input << std::endl;
}
return 0;
}
Enter a number (0 to exit): 3
You entered: 3
Enter a number (0 to exit): 5
You entered: 5
Enter a number (0 to exit): 0
この例では、ユーザーが0を入力した時点でbreak
文が実行され、ループが終了します。
よくある質問
まとめ
この記事では、C++におけるbreak
文の基本的な使い方から応用例までを詳しく解説し、if
文と組み合わせたループ制御の方法を紹介しました。
break
文を適切に活用することで、プログラムの効率を向上させ、柔軟な制御が可能になります。
これを機に、実際のプログラムでbreak
文を活用し、より効率的で読みやすいコードを書くことに挑戦してみてください。