문제 36번에서 이중포문이 실행되어있잖아요
예를 들어서 밑에있는 포문 for ( i=4; i>j; --i) 이 부분에서
밑에있는 num [j] += num [i] ,
두번째 포문에 초기식 조건식 증감식이 있는데 --i 는 전치 연산자라 들어가면서 계산전에 i를 3으로 깎고 시작해야하는것 아니였나요 ? 토막강의를 보니 계산을 다 끝내고 와서 i를 감소 시키시더라구요 ㅜㅜ
계산을 끝내고 i를 감소시키던 그 두번쨰 포문을 빠져나갈때 후치로 나중에 3을 감소하던
전치 , 후치가 결과적으로는 첫번쨰 포문에 영향을 못미치는데, ( 두번째 포문에도 영향을 못미침) 제가 전치와 후치에대해 무언가 잘못 알고 있는건가요 ?
자세하게 다시 말씀드리자면
전치는 계산들어가기전 (4 / 조건식 / --i) 일 경우 3으로 깍고 시작하는줄 알았습니다.
후치가 계산을 4로 하고 돌아와서 for문을 빠져나가면서 3으로 감소시키는 것으로 알앗는데요 어디를 잘못알고 있는건가요 ?
안녕하세요 길벗수험서 운영팀입니다.
i가 전치 연산자이므로 먼저 계산되어야 한다고 생각하시는 분들이 있으나,
전치/후치 연산이 먼저 또는 나중에 수행되는 것은 '식'을 기준으로 합니다.
식은 세미콜론; 또는 쉼표, 로 구분되며 for문은 일반적으로 3개의 식으로 구성됩니다.
for ( 식1; 식2; 식3 )
회원님께서 질문하신 for ( i=4; i>j; --i) 식에서 --i은 쉼표로 구분된 단일 식으로,
식 수행 전에 수행하든, 식 수행 후에 수행하든 단일식 이기 때문에 1이 그냥 감소되어 결과는 동일합니다.
즉, 이 --i은 i--로 교체되든, i=i-1 또는 i-=1로 교체되든 결과에 어떠한 영향도 주지 못한다는 것입니다.
또, for문의 경우 강의에서 설명을 드린것처럼
for( 초기값, 최종값, 증가값) 이 있을때
for문을 처음 만나면 초기값을 가지고 최종값을 비교한 후 반복하러 안쪽 코드로 들어가고
두번째 반복하러 올라가면 증가값만큼 값을 증감시킨후 최종값을 비교합니다
행복한 하루되세요 :)
-
관리자2024-10-08 20:05:19
안녕하세요 길벗수험서 운영팀입니다.
i가 전치 연산자이므로 먼저 계산되어야 한다고 생각하시는 분들이 있으나,
전치/후치 연산이 먼저 또는 나중에 수행되는 것은 '식'을 기준으로 합니다.
식은 세미콜론; 또는 쉼표, 로 구분되며 for문은 일반적으로 3개의 식으로 구성됩니다.
for ( 식1; 식2; 식3 )
회원님께서 질문하신 for ( i=4; i>j; --i) 식에서 --i은 쉼표로 구분된 단일 식으로,
식 수행 전에 수행하든, 식 수행 후에 수행하든 단일식 이기 때문에 1이 그냥 감소되어 결과는 동일합니다.
즉, 이 --i은 i--로 교체되든, i=i-1 또는 i-=1로 교체되든 결과에 어떠한 영향도 주지 못한다는 것입니다.
또, for문의 경우 강의에서 설명을 드린것처럼
for( 초기값, 최종값, 증가값) 이 있을때
for문을 처음 만나면 초기값을 가지고 최종값을 비교한 후 반복하러 안쪽 코드로 들어가고
두번째 반복하러 올라가면 증가값만큼 값을 증감시킨후 최종값을 비교합니다
행복한 하루되세요 :)