해결된 질문
작성
·
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