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문을 사용해야 한다.