この章では、C++における制御フローについて学びます。制御フローは、プログラムがどのように進行するかを制御するための構造です。条件分岐やループ構造を使うことで、プログラムの動作を複雑に制御することができます。この章では、if-else
文、switch
文、ループ(for
、while
、do-while
)、break
、continue
、return
、goto
文について詳しく解説します。
目次
4.1 if-else文による条件分岐
if-else
文は、条件に応じてプログラムの実行を分岐させるために使用されます。条件が真(true
)であればif
ブロック内のコードが実行され、偽(false
)であればelse
ブロックのコードが実行されます。
基本構文
if (条件) {
// 条件が真のときに実行されるコード
} else {
// 条件が偽のときに実行されるコード
}
例: if-else文
int number = 10;
if (number > 0) {
std::cout << "正の数です。" << std::endl;
} else {
std::cout << "負の数またはゼロです。" << std::endl;
}
4.2 switch文の活用とケースラベル
switch
文は、複数の値に基づいてコードを分岐させるために使用されます。if-else
文と異なり、switch
文では値ごとの処理をより簡潔に記述できます。
基本構文
switch (式) {
case 値1:
// 値1のときに実行されるコード
break;
case 値2:
// 値2のときに実行されるコード
break;
default:
// どのケースにも一致しないときに実行されるコード
}
例: switch文
int day = 2;
switch (day) {
case 1:
std::cout << "月曜日" << std::endl;
break;
case 2:
std::cout << "火曜日" << std::endl;
break;
case 3:
std::cout << "水曜日" << std::endl;
break;
default:
std::cout << "不明な曜日" << std::endl;
}
4.3 ループ処理 (for, while, do-whileの使い分け)
ループは、特定の条件が満たされている間、コードを繰り返し実行するために使用されます。
forループ
for
ループは、繰り返しの回数が決まっている場合に便利です。
for (初期化; 条件; 更新) {
// 条件が真の間、繰り返し実行されるコード
}
例: forループ
for (int i = 0; i < 5; i++) {
std::cout << i << std::endl;
}
whileループ
while
ループは、条件が真である限り、繰り返し実行されます。
while (条件) {
// 条件が真の間、繰り返し実行されるコード
}
例: whileループ
int i = 0;
while (i < 5) {
std::cout << i << std::endl;
i++;
}
do-whileループ
do-while
ループは、少なくとも1回は実行され、その後条件がチェックされます。
do {
// 少なくとも1回実行されるコード
} while (条件);
例: do-whileループ
int i = 0;
do {
std::cout << i << std::endl;
i++;
} while (i < 5);
4.4 break, continue, return文の使い方
break
: ループやswitch
文から即座に抜け出す。continue
: ループの次の繰り返しに進む。return
: 関数から即座に抜け出し、値を返す。
例: breakとcontinue
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // ループを終了
}
if (i % 2 == 0) {
continue; // 次の繰り返しにスキップ
}
std::cout << i << std::endl;
}
4.5 goto文とラベルの適切な使い方
goto
文は、指定したラベルにプログラムの制御をジャンプさせます。しかし、goto
文の使用はコードの可読性を損なう可能性があるため、推奨されることは少ないです。
例: goto文
int x = 10;
if (x > 5) {
goto label; // ラベルにジャンプ
}
std::cout << "この行はスキップされます。" << std::endl;
label:
std::cout << "ラベルにジャンプしました。" << std::endl;
まとめ
この章では、C++における制御フローについて学びました。条件分岐やループ処理を使うことで、プログラムの流れを制御し、柔軟な処理を実装できるようになります。次の章では、メソッドとスコープについて詳しく学んでいきます。