31.2 사각형으로 별 출력하기
이제 중첩된 반복문을 사용하여 5x5 사각형 형태로 별을 그려보겠습니다. 다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.
star_square.c
#include <stdio.h> int main() { for (int i = 0; i < 5; i++) // 5번 반복. 바깥쪽 루프는 세로 방향 { for (int j = 0; j < 5; j++) // 5번 반복. 안쪽 루프는 가로 방향 { printf("*"); // 별 출력 } printf("\n"); // 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 } return 0; }
실행 결과
***** ***** ***** ***** *****
먼저 안쪽의 for (int j = 0; j < 5; j++) 반복문에서 printf로 별을 그리면 다음과 같이 가로 방향으로 별이 나열됩니다.
printf에서 \n과 같은 제어 문자를 사용하지 않고 출력하면 오른쪽 방향으로 문자가 계속 붙는 특성을 이용한 것입니다.
바깥쪽의 for (int i = 0; i < 5; i++) 반복문은 안쪽 for (int j = 0; j < 5; j++) 반복문을 실행하면서 별을 5개씩 그립니다. 그리고 printf로 제어 문자 \n을 출력한 뒤 다음 줄에서 다시 별을 5개씩 그립니다. 이렇게 반복하면서 별을 5개씩 5줄 쌓아나갑니다.
콘솔에서는 위에서 아래로 출력되기 때문에 별을 그릴 때도 아래 방향으로 그리게 됩니다.
이제 for 반복문의 조건식을 수정하여 사각형의 모양을 바꿔보겠습니다.
star_rectangle.c
#include <stdio.h> int main() { for (int i = 0; i < 3; i++) // 3번 반복. 세로 방향 { for (int j = 0; j < 7; j++) // 7번 반복. 가로 방향 { printf("*"); // 별 출력 } printf("\n"); // 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 } return 0; }
실행 결과
******* ******* *******
안쪽 반복문은 7번 반복하고, 바깥쪽 반복문은 3번 반복하도록 수정하였습니다. 즉, 가로 방향으로 별을 7개 그리고, 세로 방향으로 3줄을 출력합니다. 각자 반복문 조건식의 숫자를 바꿔서 다양한 크기로 출력해보세요.