작성
·
103
·
수정됨
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
지혜님께서 질문하신 내용은 while
문과 for
문의 증감 연산자에 대한 차이를 이해하는 데 도움이 될 것입니다. 두 개의 연산 방식이 약간의 차이가 있어 사용자가 헷갈릴 수 있습니다. 연산자 자체와 증감 위치에 따른 값 변화 때문에 발생한 혼동에 대해 설명해 드리겠습니다.
while (i++ < 10)
과 for (int i=0; i<10; i++)
의 차이를 살펴보겠습니다:
후위 연산자(i++
) 사용:
while (i++ < 10)
에서 i++
는 현재 i
의 값을 평가한 후에 i
를 1 증가시킵니다. 이 경우 i
가 0일 때 while
조건문은 0 < 10
을 평가하고 나서 i
를 1 증가시키므로, System.out.println(i);
는 1을 출력합니다. 따라서 반복문은 1
부터 10
까지 출력하게 됩니다.증감 연산과 평가:
for (int i=0; i<10; i++)
의 경우는, i
가 증가한 후의 값이 for
루프의 조건에서 사용됩니다. 처음 i
는 0
이고, 조건에서 i < 10
을 만족하는 동안 루프가 계속되며, i
는 증가한 다음 조건이 다시 평가됩니다.이러한 차이는 주로 연산자의 위치 때문에 발생합니다. 후위 증감 연산자 (i++
)는 가장 가까운 연산을 수행하고 나서 증가시키기 때문입니다.
좀 더 나중에 나오는 평가에서 증가된 값을 활용하기 때문에, while
문에서는 조건을 먼저 평가하고 나서 i
를 증가시켜 1
부터 시작하게 되며 10
에서 멈추게 되는 현상이 발생합니다. 반면 for
문은 증감이 조건 평가 후에 이뤄집니다.
비슷한 질문에 대한 설명이 담긴 링크를 통해 더 깊이 있는 이해를 도와드릴 수 있습니다:
while문 증감 연산자 질문 - 이 링크에서는 유사한 상황을 다루면서, while
문과 for
문의 차이점에 대해 설명합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.