인프런 커뮤니티 질문&답변
강의 5.12 while 문에 왜 {}가 없는 건가요?
작성
·
169
0
9분 12초에
void draw(int n)
{
while (n-- > 0)
printf("*");
printf("\n");
}
이 코드에 왜
{
while (n-- > 0)
{
printf("*");
printf("\n");
}
}
이렇게 안하나요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
차희원님, 질문해주신 while문에 대해 설명드리겠습니다. 프로그래밍 언어에서 while문은 조건이 참인 동안 계속해서 실행되는 반복문입니다. while문에서 중괄호 {}를 사용하는 것은 해당 while문의 범위를 지정하여 어떤 명령문을 반복할 것인지를 정하는 역할을 합니다.
본문에 제시된 코드에서는:
while (n-- > 0)
printf("*");
printf("\n");
while문 바로 다음에 오는 printf("*"); 명령문만을 반복하며, printf("\n");은 반복하지 않는 구조입니다. 따라서 while문의 조건이 참인 동안 printf("*");가 반복 실행되고, 조건이 거짓이 되면 while문을 종료한 후 printf("\n");을 한 번만 실행하게 됩니다.
만약 중괄호를 사용하여 코드를 작성한다면:
while (n-- > 0)
{
printf("*");
}
printf("\n");
이 경우에도 while문의 조건이 참인 동안 printf("*");만을 반복하고, printf("\n");을 반복하지 않는 동작은 같으나, 중괄호를 통해 명시적으로 printf("*");만이 while문의 범위에 속함을 나타내어 코드의 가독성을 높일 수 있습니다.
while문에 중괄호가 없는 경우는, 보통 단일 명령문만을 반복하고자 할 때 주로 사용하며, 그렇기 때문에 위의 코드에서는 while문 다음에 오는 하나의 명령문만을 반복하기 위해 중괄호를 생략한 것입니다. 하지만 여러 명령문을 반복하고자 하거나, 코드의 명확성을 위해 중괄호를 사용하는 것이 좋습니다.




