• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

for문 질문드려요!

21.05.11 18:48 작성 조회수 150

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

안소님의 프로필

안소

2021.05.11

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

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

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

0

서켠님의 프로필

서켠

질문자

2021.05.11

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