인프런 커뮤니티 질문&답변

김복두님의 프로필 이미지
김복두

작성한 질문수

홍정모의 따라하며 배우는 C언어

6.15 중첩된 루프들

for문 질문드려요!

해결된 질문

작성

·

215

0

for (int r = 0; r < 5; ++r)

{

for (char c = 'A'; c < 75; ++c)

printf("%c ", c);

printf("\n");

}

를 실행하면 

A B C D E F G H I J

A B C D E F G H I J

A B C D E F G H I J

A B C D E F G H I J

A B C D E F G H I J

이렇게 나오더라고요.

제 생각은 

A

B

C

D

.

.

이렇게 실행될 거라고 생각했거든요. 

저는 안쪽에 있는 for문에서 printf("%c ", c);와 printf("\n");가 순차적으로 실행될거라고 생각했는데, 실제로는 printf("%c ", c);만 반복되고 안쪽에 있는 for문이 끝나야 printf("%c ", c);와 printf("\n");가 순차적으로 실행되더라고요. 왜그런건지 궁금합니다.

답변 2

1

이렇게 쓰신 것이나 마찬가지입니다. printf("%c ", c); 만 안쪽 for문에 해당 되고, printf("\n"); 는 바깥쪽 for 문에 해당됩니다. 안쪽 for문에 해당 안돼요!

for 문이든 while문이든 중괄호 안 써주면 딱 한문장만 for, while 에 포함됩니다. 

"저는 안쪽에 있는 for문에서 printf("%c ", c);와 printf("\n");가 순차적으로 실행될거라고 생각했는데," 라고 말씀하셨는데 그러려면 위와 같이 안쪽 for문의 중괄호로 두 문장을 묶은 위와 같은 형태여야지만 질문자님께서 생각하신대로 작동해요. 

0

김복두님의 프로필 이미지
김복두
질문자

아하 그렇군요. 빠른 답변 감사합니다!

김복두님의 프로필 이미지
김복두

작성한 질문수

질문하기