[C언어] for문과 이중 for 문 쉽게 이해하기!

2024. 4. 9. 18:10코딩/c언어

for 문

 

for문은 시작점만 달라지고 수행의 횟수는 항상 같다.

 

이 때, 시작점이 달라진다는 건, i의 값이 달라진다는 뜻이다.

 

예를 들어 다음 코드를 실행시키면 "aaa"는 5번 출력되는데, 

#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("aaa\n");
    }
    return 0;
}

 

 

 

 

i가 0일 때 aaa 한 번,

 

i가 1일 때 aaa가 한 번 ..

 

이렇게 i가 4일 때까지 총 5번 출력이 되었다.

 

 

이 결과에서 확인할 수 있듯이, 

 

for 문은 for 문 내부의 조건을 지정 횟수만큼 

 

반복시키는 구문이다.  

 

 

 

 

 

이중 for 문

 

반면, 이중 for문은 시작점과 수행의 횟수가 모두 달라지게 할 수 있다.

 

다음 코드를 실행시키면 aaa는 10번 출력된다.

 

#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < i; j++) {
            printf("a");
        }
        printf("\n");
    }
    return 0;
}

 

j<i 처럼 이중 for문에서는 두 가지 변수를 엮을 수 있기 때문이다.

 

위 코드를 자세히 살펴보면, i=0일 때 j=0 이면 아무것도 출력되지 않고 종료된다.

그럼 i++이 되어 i=1이 되고 j=0 일 때 j<i를 만족시키므로 한 번 출력된다.

i=2가 되면 j=0,j=1일 때 j<i를 만족시키므로 두 번 출력되고

같은 논리로 i=3일 때 세 번, i=4일 때 네 번 출력된다.

따라서 1+2+3+4 = 10, 총 10번 출력되는 것이다.   

 

i와 j가 엮여있기 때문에 i 값에 따라 j 값 (실행 횟수) 도 달라진다는 걸 알 수 있다.

 

 

 

정리하자면, 

 

같은 작업을 각 시행마다 동일 횟수 수행하려면 for문을,

 

같은 작업이지만 각 시행마다 횟수를 달리 수행하려면 이중 for문을 쓰는 것이다. 

 

 

그렇다면, 

 

*****
*****
*****
*****

 

다음과 같은 출력을 위해서는 for문을 사용하고,

 

*
**
***
****

 

이런 출력을 위해서는 이중 for문을 사용해야 한다.