71페이지 4번 문제 for문에 증감연산자 때문에 질문드립니다.
for(i=1; i<=10; ++i)
hap += i;
위의 부분인데 i=1일때 증감연산자가 ++i 이면
전위연산자는 문장이 끝나기 전에 연산(증감)이 완료되니까
for문 한번이 끝나기 전에 ++i가 적용되어 i=2가 되어 계산이 될 줄 알았는데 i=1로 계산이 되더라구요.
i가 hap += i; 문장이 끝나고 i가 증가가 되는 것 일까요?
그럼 i++이랑 ++i랑 차이가 없는 것 같은데 어떤 차이가 있습니까 ?
for문의 증감연산자는 후위와 전위일 때 어느 시점에서 증감이 되는 것인지 궁금해서 문의를 올립니다!
안녕하세요 길벗수험서 운영팀입니다.
아무런 차이도 존재하지 않습니다.
전치, 후치 증감 연산자는 '하나의 식' 내에서만 그 차이가 발생합니다.
하나의 식은 쉼표(,), 세미콜론(;)으로 구분되며,
단순히 홀로 ++i로 써진 식은 i++, i=i+1과 차이가 없게 됩니다.
전치, 후치 증감 연산자라는게, "식을 수행하기 전/후에 값을 증/감해라"라는 연산을 수행하기 위함이므로 단독으로 사용된다면 단순히 1 더하고 빼는 것과 다를바 없어지죠.
모든 for문의 경우 마지막 반복 수행이 끝나면
(증가식) -> (조건식) -> 거짓판명! 탈출!
을 수행하기 때문에 위의 for문( for(i=1;i<=10;++i))의 경우로 따지면 i는 11이 되고 끝납니다.
당연히 ++i가 아닌 i++이 증가식에 들어가도 동일한 결과가 나타납니다.
행복한 하루되세요 :)
-
관리자2020-06-15 20:00:48
안녕하세요 길벗수험서 운영팀입니다.
아무런 차이도 존재하지 않습니다.
전치, 후치 증감 연산자는 '하나의 식' 내에서만 그 차이가 발생합니다.
하나의 식은 쉼표(,), 세미콜론(;)으로 구분되며,
단순히 홀로 ++i로 써진 식은 i++, i=i+1과 차이가 없게 됩니다.
전치, 후치 증감 연산자라는게, "식을 수행하기 전/후에 값을 증/감해라"라는 연산을 수행하기 위함이므로 단독으로 사용된다면 단순히 1 더하고 빼는 것과 다를바 없어지죠.
모든 for문의 경우 마지막 반복 수행이 끝나면
(증가식) -> (조건식) -> 거짓판명! 탈출!
을 수행하기 때문에 위의 for문( for(i=1;i<=10;++i))의 경우로 따지면 i는 11이 되고 끝납니다.
당연히 ++i가 아닌 i++이 증가식에 들어가도 동일한 결과가 나타납니다.
행복한 하루되세요 :)