while문 증감 연산자 질문 드립니다 ㅜㅜ
180
작성한 질문수 1
i = 0;
while (i++ < 10) {
System.out.println(i);
}
이 while 문을 출력하면 콘솔에 1부터10까지 10번 출력이 나오는데요 i++ 붙은 증감 연산자가 뒤에 있으니까 0부터9까지 10번 나와야 하는게 아닌가요?ㅜㅜ
for문에서는 for(int i=0; i<10; i++){}이럴경우 0부터9까지 10번 실행이되는데 왜 다른가요...헷갈려요 선생님
답변 2
0
안녕하세요. 지혜님, 공식 서포터즈 y2gcoder입니다.
i = 0;
while (i++ < 10) { // 평가 i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, (10 -> X)
System.out.println(i); // 출력 당시 i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
}AI 인턴이 잘 말해주었다고 생각합니다!
위는 AI 인턴이 말한 바를 주석으로 표시해봤습니다!
감사합니다.
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문의 차이점에 대해 설명합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
문제와 풀이4 문제점
0
50
2
문제풀이 시간마다 방향성
0
46
2
피라미드 문제 풀이
0
73
1
ScannerWhile3 예제 코드 질문
0
58
1
짝수 출력 문제 질문
0
53
1
Array 연습 문제 5번 질문입니다.
0
85
2
단축어가 이상하게 나옵니다
0
133
2
Sql강의
0
91
1
array 문제풀이 2번 질문입니다.
0
57
1
JAVA입문 / 메서드편 문제와 풀이2
0
48
1
인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요
1
817
3
OperationEx3에서 꼭 boolean을 써야 하나요?
0
63
1
for, while문 작성
0
66
1
68강 ArrayEx6 클래스 질문
0
61
1
IO.println(String.format("Hello and welcome!"));
0
153
2
소스코드 실행이 안돼요
0
120
2
메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?
0
80
1
While과 for 스코프 질문
0
64
1
김영한 java 입문 설치 질문
0
139
2
버퍼문제?
0
55
1
for문 피라미드 찍는거 질문
0
79
1
21버전이 없고, 강의 메뉴얼 확인해보면 된다는 김영한 선생님 답변 확인했습니다.
0
377
1
3번 문제 질문 있습니다.
0
100
2
sout에는 변수가 하나만 들어가야 하나요?
0
135
1





