2) d%b + ++a*c-- || c- --a>=10
유튜브 강의에서 보면 --a / c-- / ++a 순으로 먼저 계산 후 % * 계산하라고 하셨는데
c-- 는 마이너스가 뒤에 있어 c=5 변수 그대로 계산했으면
c- --a 계산할때는 c-- 계산이 적용되어 4-3>=10 으로 되는거 아닌가요?
안녕하세요 길벗수험서 운영팀입니다.
C언어로 보면 강의자분이 맞으며, Java로 보면 수험자분의 말씀이 맞습니다.
C언어의 경우 전치연산자와 후치연산자의 적용이 식 전체에 적용됩니다.
int a = 2;
a= a++ + a + ++a;
라는 식이 있을 때,
C라면
a = a + 1; → 2 + 1 = 3
a = a + a + a; → 3 + 3 + 3 = 9
a = a + 1; → 9 + 1 = 10
이러한 식과 동일합니다. 결과로 10이 나오겠죠.
Java라면
a = a + (a+=1) + (a+=1) → 2 + 3 + 4 = 9
이러한 식이 될 것입니다.
교재는 C언어를 기준으로 해설하고 있기 때문에 연속되는 전치, 후치연산자를 자바에 적용하는 경우 다를 수 있습니다. 이점에 대해서는 언어 간 혼동으로 인하여 시험에 출제될 가능성이 적으니, 이러한 순서로 풀어지는구나 정도만 알아두시면 될 것 같습니다.
행복한 하루되세요 :)
-
관리자2020-03-17 10:36:35
안녕하세요 길벗수험서 운영팀입니다.
C언어로 보면 강의자분이 맞으며, Java로 보면 수험자분의 말씀이 맞습니다.
C언어의 경우 전치연산자와 후치연산자의 적용이 식 전체에 적용됩니다.
int a = 2;
a= a++ + a + ++a;
라는 식이 있을 때,
C라면
a = a + 1; → 2 + 1 = 3
a = a + a + a; → 3 + 3 + 3 = 9
a = a + 1; → 9 + 1 = 10
이러한 식과 동일합니다. 결과로 10이 나오겠죠.
Java라면
a = a + (a+=1) + (a+=1) → 2 + 3 + 4 = 9
이러한 식이 될 것입니다.
교재는 C언어를 기준으로 해설하고 있기 때문에 연속되는 전치, 후치연산자를 자바에 적용하는 경우 다를 수 있습니다. 이점에 대해서는 언어 간 혼동으로 인하여 시험에 출제될 가능성이 적으니, 이러한 순서로 풀어지는구나 정도만 알아두시면 될 것 같습니다.
행복한 하루되세요 :)