인프런 커뮤니티 질문&답변
while문 증감 연산자 질문 드립니다 ㅜㅜ
작성
·
125
·
수정됨
답변 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문의 차이점에 대해 설명합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





