음... 잘 모르겠습니다. 누가 좀 알려주세요.
글쓴이: quexa / 작성시간: 목, 2013/05/30 - 9:58오후
아래 내용은 오늘 하루종일 이해가 안 되서 시름한 내용입니다.
코드가 옳은가 그른가가 문제가 아니라 왜 이렇게 된 건지가 이해가 안 되서요.
#include <stdio.h> int main() { int n, s, total; n = 10; total = 0; s = 0; while ((s++) < n) { total = total + s; } printf ("%d\ts = %d\n", total, s); total = 0; s = 0; while ((s++)<=n) { total = total +s; } printf ("%d\ts = %d\n", total, s); }
이 녀석을 컴파일하면, 각각
55 s = 11
66 s = 12
가 나옵니다. s가 각각 1 증가한 이유를 모르겠습니다. -_-$@^&*(#!!
Forums:
수정기능이 없군요.
원 코드엔 <stdio.h>들어가 있습니다.
증가연산자 때문인거같네요
++나
--나 둘다 값을 증가/감소를 시키는데
변수 앞이냐 뒤냐에 따라 처리방식이 달라집니다. 전위/후위
while((s++)<10) 이렇게 할경우 s값을 10과 비교한 뒤 s+1을 하고
while((++s)<10) 이렇게 할경우 s+1한 값을 10과 비교합니다.
그러니 하나씩 순서대로 값을 넣어 보시면
while( (10++)<10)일때 10과 10을 비교한뒤 false가 되어서 나올때 10+1을 하니 결과값이 11이 나온 것 입니다.
욥!!!! 늦게 시작했지만 열심히하면 된다!!!!!
그렇군요!
감사합니다! _(__)_
댓글 달기