第4章: 制御フロー

control-flow-c

この章では、C++における制御フローについて学びます。制御フローは、プログラムがどのように進行するかを制御するための構造です。条件分岐やループ構造を使うことで、プログラムの動作を複雑に制御することができます。この章では、if-else文、switch文、ループ(forwhiledo-while)、breakcontinuereturngoto文について詳しく解説します。

目次

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++における制御フローについて学びました。条件分岐やループ処理を使うことで、プログラムの流れを制御し、柔軟な処理を実装できるようになります。次の章では、メソッドとスコープについて詳しく学んでいきます。

目次