1번
p=1
for(int i=0; i<5; i++, p*=i)
이것과 코드는 조금 다르지만
2번
b=10
for(a=0; a<5; ++a, b-=a);
식3이" ,(콤마)" 로 나열되어 있을때는 두식을 차례로 수행한다는데
i++로 후치인 문제 1번과 ++a로 전치인 문제2번간에 계산 차이가 없어서 헷갈립니다.
두 문제 모두 증가시켜준뒤 콤마 뒤의 식을 계산하는데
이때는 전치 후치의 개념이 적용이 어떻게 되는거죠?
for문 안에서는 전치 후치의 개념에 상관없이 무조건 1을 먼저 증가시키나요?
안녕하세요. 길벗 수험서 운영팀입니다.
전치수식 또는 후치수식 연산자의 경우 한 식 내에서만 영향에 차이가 있습니다.
a=1, b=2, c=3 이 있을 때,
a = ++b * c--와 같이 말이죠.
(위의 식이 끝나면 a=9, b=3, c=2가 됩니다.)
회원님이 예시로 드신 for문 1번과 2번의 경우 직접 말씀하신 것에 정답이 있습니다.
식3에 '두' 식이 나열되어 있다는 것이죠.
즉, i++ 또는 ++a이 하나의 식으로써 스스로를 증산하고 그대로 종료되어 버리는 하나의 식입니다.
이 때에는 전치수식과 후치수식의 의미가 전혀 없게 됩니다.
위 for문을 전치수식과 후치수식의 영향이 서로 다른 예시로 만들고 싶다면, 식3의 두 식들을 하나로 합치면 됩니다.
1번
p=1;
for(int i=0; i<5; p*=i++);
2번
b=10
for(a=0; a<5; b-=++a);
이렇게 말이죠.
위와 같이 변경될 경우, 1번은 p에 i갑이 곱해진 후 i가 1 증가하겠고, 2번은 b에 a가 1 더해진 값이 감산되는 연산을 수행하는 반복문이 되겠습니다.
행복한 하루되세요.^^
-
*2018-09-20 10:37:20
안녕하세요. 길벗 수험서 운영팀입니다.
전치수식 또는 후치수식 연산자의 경우 한 식 내에서만 영향에 차이가 있습니다.
a=1, b=2, c=3 이 있을 때,
a = ++b * c--와 같이 말이죠.
(위의 식이 끝나면 a=9, b=3, c=2가 됩니다.)
회원님이 예시로 드신 for문 1번과 2번의 경우 직접 말씀하신 것에 정답이 있습니다.
식3에 '두' 식이 나열되어 있다는 것이죠.
즉, i++ 또는 ++a이 하나의 식으로써 스스로를 증산하고 그대로 종료되어 버리는 하나의 식입니다.
이 때에는 전치수식과 후치수식의 의미가 전혀 없게 됩니다.
위 for문을 전치수식과 후치수식의 영향이 서로 다른 예시로 만들고 싶다면, 식3의 두 식들을 하나로 합치면 됩니다.
1번
p=1;
for(int i=0; i<5; p*=i++);
2번
b=10
for(a=0; a<5; b-=++a);
이렇게 말이죠.
위와 같이 변경될 경우, 1번은 p에 i갑이 곱해진 후 i가 1 증가하겠고, 2번은 b에 a가 1 더해진 값이 감산되는 연산을 수행하는 반복문이 되겠습니다.
행복한 하루되세요.^^