C言語 #19: forループ

独習C

プログラムでは、特定の回数や条件に基づいて繰り返し処理を実行するためにループが使用されます。C言語では、forループを使用して効率的に繰り返し処理を実装することができます。この投稿では、forループの使用方法と具体例について詳しく説明します。

基本的なforループ

forループは、初期化、条件式、更新式の3つの部分で構成されます。forループの構文は以下の通りです。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
for (int i = 0; i < 5; i++) {
printf("カウント: %d\n", i);
}
return 0;
}
#include <stdio.h> int main() { for (int i = 0; i < 5; i++) { printf("カウント: %d\n", i); } return 0; }
#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("カウント: %d\n", i);
    }

    return 0;
}

出力:

カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4

初期化部分

forループの初期化部分では、ループカウンタ変数を初期化します。これはループの最初に一度だけ実行されます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 5; i++) {
printf("カウント: %d\n", i);
}
return 0;
}
#include <stdio.h> int main() { int i; for (i = 0; i < 5; i++) { printf("カウント: %d\n", i); } return 0; }
#include <stdio.h>

int main() {
    int i;

    for (i = 0; i < 5; i++) {
        printf("カウント: %d\n", i);
    }

    return 0;
}

条件式部分

forループの条件式部分では、ループを続けるかどうかを判断します。条件式が真(true)の間、ループは繰り返されます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i += 2) {
printf("カウント: %d\n", i);
}
return 0;
}
#include <stdio.h> int main() { for (int i = 0; i < 10; i += 2) { printf("カウント: %d\n", i); } return 0; }
#include <stdio.h>

int main() {
    for (int i = 0; i < 10; i += 2) {
        printf("カウント: %d\n", i);
    }

    return 0;
}

出力:

カウント: 0
カウント: 2
カウント: 4
カウント: 6
カウント: 8

更新式部分

forループの更新式部分では、ループカウンタ変数を更新します。これは各繰り返しの最後に実行されます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
for (int i = 10; i > 0; i--) {
printf("カウント: %d\n", i);
}
return 0;
}
#include <stdio.h> int main() { for (int i = 10; i > 0; i--) { printf("カウント: %d\n", i); } return 0; }
#include <stdio.h>

int main() {
    for (int i = 10; i > 0; i--) {
        printf("カウント: %d\n", i);
    }

    return 0;
}

出力:

カウント: 10
カウント: 9
カウント: 8
カウント: 7
カウント: 6
カウント: 5
カウント: 4
カウント: 3
カウント: 2
カウント: 1

ネストされたforループ

forループを他のforループの中に入れ子にして使用することができます。これにより、二重ループなどの複雑な処理を実装することが可能です。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
printf("%d, %d\n", i, j);
}
}
return 0;
}
#include <stdio.h> int main() { for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); } } return 0; }
#include <stdio.h>

int main() {
    for (int i = 1; i <= 3; i++) {
        for (int j = 1; j <= 3; j++) {
            printf("%d, %d\n", i, j);
        }
    }

    return 0;
}

出力:

1, 1
1, 2
1, 3
2, 1
2, 2
2, 3
3, 1
3, 2
3, 3

continue文の使用

continue文を使用すると、現在の繰り返しをスキップして次の繰り返しに進むことができます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 偶数の場合はスキップ
}
printf("奇数: %d\n", i);
}
return 0;
}
#include <stdio.h> int main() { for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; // 偶数の場合はスキップ } printf("奇数: %d\n", i); } return 0; }
#include <stdio.h>

int main() {
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0) {
            continue; // 偶数の場合はスキップ
        }
        printf("奇数: %d\n", i);
    }

    return 0;
}

出力:

奇数: 1
奇数: 3
奇数: 5
奇数: 7
奇数: 9

break文の使用

break文を使用すると、ループを強制的に終了することができます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // ループを終了
}
printf("カウント: %d\n", i);
}
return 0;
}
#include <stdio.h> int main() { for (int i = 0; i < 10; i++) { if (i == 5) { break; // ループを終了 } printf("カウント: %d\n", i); } return 0; }
#include <stdio.h>

int main() {
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break; // ループを終了
        }
        printf("カウント: %d\n", i);
    }

    return 0;
}

出力:

カウント: 0
カウント: 1
カウント: 2
カウント: 3
カウント: 4

総合例

以下に、ここまで紹介したforループの知識を統合したプログラムを示します。このプログラムでは、基本的なforループ、ネストされたforループ、continue文、およびbreak文を使用します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <stdio.h>
int main() {
// 基本的なforループ
printf("基本的なforループ:\n");
for (int i = 0; i < 5; i++) {
printf("カウント: %d\n", i);
}
// ネストされたforループ
printf("\nネストされたforループ:\n");
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
printf("%d, %d\n", i, j);
}
}
// continue文の使用
printf("\ncontinue文の使用:\n");
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 偶数の場合はスキップ
}
printf("奇数: %d\n", i);
}
// break文の使用
printf("\nbreak文の使用:\n");
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // ループを終了
}
printf("カウント: %d\n", i);
}
return 0;
}
#include <stdio.h> int main() { // 基本的なforループ printf("基本的なforループ:\n"); for (int i = 0; i < 5; i++) { printf("カウント: %d\n", i); } // ネストされたforループ printf("\nネストされたforループ:\n"); for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); } } // continue文の使用 printf("\ncontinue文の使用:\n"); for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; // 偶数の場合はスキップ } printf("奇数: %d\n", i); } // break文の使用 printf("\nbreak文の使用:\n"); for (int i = 0; i < 10; i++) { if (i == 5) { break; // ループを終了 } printf("カウント: %d\n", i); } return 0; }
#include <stdio.h>

int main() {
    // 基本的なforループ
    printf("基本的なforループ:\n");
    for (int i = 0; i < 5; i++) {
        printf("カウント: %d\n", i);
    }

    // ネストされたforループ
    printf("\nネストされたforループ:\n");
    for (int i = 1; i <= 3; i++) {
        for (int j = 1; j <= 3; j++) {
            printf("%d, %d\n", i, j);
        }
    }

    // continue文の使用
    printf("\ncontinue文の使用:\n");
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0) {
            continue; // 偶数の場合はスキップ
        }
        printf("奇数: %d\n", i);
    }

    // break文の使用
    printf("\nbreak文の使用:\n");
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break; // ループを終了
        }
        printf("カウント: %d\n", i);
    }

    return 0;
}

結論

条件が真である間、繰り返し処理を実行するためにforループは非常に便利です。C言語のforループを活用することで、効率的な繰り返し処理を実装することができます。これらの知識を基に、柔軟で強力なプログラムを作成しましょう。

購読
通知


0 Comments
Inline Feedbacks
View all comments