반복문안에 반복문이 들어가는 형태를 다중 반복문이라 합니다. 이 부분은 안쪽 바깥쪽을 따로 분리시켜 하나로 합치는 방법으로 이해하면 프로그래밍도 쉽고 재미도 있습니다.
다음은 hello 를 몇 번 출력할 까요?
for( i = 1 ; i <=2 ; i++){ for( j = 1 ; j <= 3 ; j++){ printf("hello"); } }
******* ******* ******* *******
step1. 먼저 출력 할 줄 수를 결정 합니다. 다섯 줄 .for( i = 1 ; i <= 5 ; i++){ printf("\n"); }step2. 각 줄 당 별이 7 개 출력됩니다.for( j =1 ; j <= 7 ; j++){ printf("*"); }step3. step1 과 step2 를 합칩니다.
***** **** *** ** *
방법 1
step1. 생각하는 방법은 먼저 몇 줄을 출력하는 가를 결정한다. 다섯 줄이다.for( i = 1 ; i <= 5 ; i++){ printf("\n"); }step2. 각 줄당 어떻게 출력할 것인가... 이 경우에는 각 줄당 출력되는 별의 수가 가변적이므로 수 하나로 놓을 수가 없다. 이 경우 i 값을 이용해서 해결할 수 있다.
각 줄 당 5 - i + 1 개의 별을 출력하면된다.
for( j = 1 ; j <= 5-i+1 ; j++){ printf("*"); }step3: step1 과 step2 를 합칩니다.
방법 2
step1. 다섯 번 반복하는 것을 굳이 1 , 2, 3, ,4 ,5 로 갈수도 있지만 5,4,3,2,1 로 혹은 1 , 3 , 5, 7 , 9 로도 여러가지 방법이 있다.이 경우 5 , 4 , 3 , 2 ,1 로 간다면
for( i = 5 ; i >= 1 ; i--){ printf("\n"); }step2. 각 줄당 i 개의 별을 출력하면 되므로for( j = 1 ; j <= i ; j++){ printf("*"); }step3. step1 과 step3 를 합침.
출처:dovelet