月ノ書

<C++>繰り返し処理

今回の記事でわかること
  • for 文、while 文、do-while 文の基本がわかる
  • 繰り返し処理でプログラムを短く書けるようになる

繰り返し条件とは

プログラムで「同じ処理を何回も行いたい」ときに使います

といった場面で大活躍します

選び方
繰り返し文説明
for回数が決まっているときに向いている
while条件が真の間繰り返す
do while最低1回は実行したいとき

for 文

「回数が決まっている繰り返し」に向いています

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 5; i++) {
        cout << "iの値は " << i << endl;
    }
    return 0;
}

/* 出力結果
iの値は 0
iの値は 1
iの値は 2
iの値は 3
iの値は 4
*/

書き方は for(初期化; 条件; 更新) の順で書き、条件が false になった時点でループは終了されます

while 文

「条件を満たしている間、繰り返す」処理に使います

#include <iostream>
using namespace std;

int main() {
    int num = 0;
    while (num < 3) {
        cout << "num = " << num << endl;
        num++;
    }
    return 0;
}

/* 出力結果
num = 0
num = 1
num = 2
*/

do-while 文

while と似ていますが、最低1回は条件を満たしていなくても実行されるのが特徴です

#include <iostream>
using namespace std;

int main() {
    int num = 5;
    do {
        cout << "num = " << num << endl;
        num++;
    } while (num < 3);
    return 0;
}

/* 出力結果
num = 5
*/

break と continue

処理説明
break;ループを強制終了
continue;その回の処理をスキップし、次の繰り返しへ
#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 5; i++) {
        if (i == 2) continue;  // i=2のときスキップ
        if (i == 4) break;     // i=4でループ終了
        cout << "i = " << i << endl;
    }
    return 0;
}

/* 出力結果
i = 0
i = 1
i = 3
*/

実用パターン

配列の合計と最大値

#include <iostream>
using namespace std;

int main() {
    int a[] = {4, 9, 1, 7};
    int len = sizeof(a) / sizeof(a[0]);
    int sum = 0, max = a[0];

    for (int i = 0; i < len; i++) {
        sum += a[i];
        if (a[i] > max) max = a[i];
    }
    cout << "sum = " << sum << ", max = " << max << endl;
    return 0;
}

/* 出力結果
sum = 21, max = 9
*/

範囲 for

C++ では配列や文字列を範囲 for 文で簡単に書けます

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s = "Hello";

    for (char c : s) {
        cout << c << " ";
    }
    return 0;
}

/* 出力結果
H e l l o
*/

配列や std::vector でも同じように扱える

可読性のコツ

これらはどの言語にも共通して大事な要素です

学習進捗

0
Would love your thoughts, please comment.x