LoginSignup
0
0

二重ループでのカウント変数の変化(C言語)

Last updated at Posted at 2023-12-10
value1.c
#include <stdio.h>

int main(void)
{
    int cnt = 0;
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 10; j++) {
            cnt++;
        }
    }
    
    printf("%d\n", cnt);
    
    return 0;
    
}

変数「cnt」が二重ループの外にある場合、「5 * 10 = 50」
「i」が「0」の時・・・「j」は「0~9」までカウントされて「cnt = 10」
「i」が「1」の時・・・「j」は「0~9」までカウントされて「cnt = 20」
「i」が「2」の時・・・「j」は「0~9」までカウントされて「cnt = 30」
「i」が「3」の時・・・「j」は「0~9」までカウントされて「cnt = 40」
「i」が「4」の時・・・「j」は「0~9」までカウントされて「cnt = 50」
になる。

value2.c
#include <stdio.h>

int main(void)
{
    int cnt;
    for (int i = 0; i < 5; i++) {
        cnt = 0;
        for (int j = 0; j < 10; j++) {
            cnt++;
        }
    }
    
    printf("%d\n", cnt);
    
    return 0;
    
}

変数「cnt」が二重ループの中にある場合、
「i」が「0~3」の間、インクリメントされるたびに「cnt」が「0」にリセットされる。
そして「i = 4」の最後のループの時、「cnt」は10回カウントされる。

「i = 0」の時、「j」の「0~9」まで「cnt」変数が10回カウントされるが、
「i = 1」の時、「cnt」変数は「0」にリセットされる。

「i = 1」の時、「j」の「0~9」まで「cnt」変数が10回カウントされるが、
「i = 2」の時、「cnt」変数は「0」にリセットされる。

「i = 2」の時、「j」の「0~9」まで「cnt」変数が10回カウントされるが、
「i = 3」の時、「cnt」変数は「0」にリセットされる。

「i = 4」の時、「i < 5」のため「i」は最後のループになるので、これ以上「cnt」変数はリセットされず、
「j」の「0~9」まで「cnt」変数が10回カウントされる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0