C++制御構文

条件分岐

if文の書き方

条件分岐のif文は、C言語と同じ形式になります。


int x = 5;

if (x == 5) {
    ...
} else if (x == 6) {
    ...
} else {
    ...
}

switch文の書き方

条件分岐のswitch文は、C言語と同じ形式になります。
break文を定義することで、case処理を終了します。
break文を定義しない場合にはフォールスルー(下の case に処理が流れること)します。


switch (x) {
    case 0:
        std::cout << "x=" << x << "\n";
        break;
    case 1:
    case 2:
        // x == 1 または x == 2 のときの処理
        break;
    default:
        // x がそれ以外のときの処理
}

反復処理

for文の書き方

for文の繰り返し条件変数はカッコ内で定義できます。(C言語からの拡張点)


for (int i = 0; i < 10; ++i) {
    std::cout << i << std::endl;
}

while文の書き方

while は () に渡された条件が true である限り { ... } 内の処理を繰り返し実行します


int j = 0;

while (j < 5) { // jが5未満の間
    std::cout << "j: " << j << "\n";
    j++;        // jを1増やす
}

do-while文の書き方

初回は無条件で do { ... } 内の処理を実行します。
そして、2回目以降は while () に渡された条件が true である限り do { ... } 内の処理を実行し続けます。


int k = 0;

do {
    std::cout << "k: " << k << "\n";
    k++;        // kを1増やす
} while (k < 10); // kが10未満の間

中断処理

break文

break文は、ループ処理を中断してループ文を終了します。


for (int i = 0; i < 10; i++) {
    if (i == 5) { // iが5ならばループを終了
        break;
    }
    std::cout << "i: " << i << "\n";
}

continue文

continue文は、現在のループ処理を中断して、次のループ処理を行います。


for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) { // iが偶数ならばスキップする
        continue;
    }
    std::cout << "i: " << i << "\n";
}

ジャンプ処理

goto文

C++のgotoステートメントは、指定した識別子によってラベル付けされたステートメントに制御を移します。
goto文は注意して使用すれば、非常に有用な機能です。


int main(){
    goto B;
    A:
    // 処理しない
    printf("Process A");

    B:
    // 処理する
    printf("Process B");
    goto D;

    C:
    // 処理する
    printf("Process C");

    return 0;
}

関連ページ