251페이지 연산자 우선순위 2번 문제
d%b + ++a*c--||c- --a>=10에서 프로그램에서 했을떄 앞에 연산이 22로 나오던데 왜 그런걸까요?ㅜㅜ chatgpt로 물어봐도 22로 나오던데 왜그런 걸까요 ㅠㅠㅠ
안녕하세요 길벗수험서 운영팀입니다.
d%b + ++a*c--||c- --a>=10
이 식에서 a의 초기값이 3입니다.
위의 식에서 ++a 전치 연산자와 --a 후치 연산자가 있기 때문에
a의 값을 1증가 시켰다가 1감소를 하여 a의 값은 3으로 계산을 한것입니다.
22로 나오는것은 원래 프로그램에서는 ||(or연산)을 기준으로
좌측, 우측으로 식을 나누어 계산을 합니다.
or연산은 둘중 하나라도 만족하면 참이 되기 때문에 오른쪽 식을 전혀 계산을 하지 않고
좌측만 가지고 계산을 한것입니다.
d % b는 2이고
++a*c-- 는 a의 값을 1증가시켜 a는 4이고 c는 5로 계산을 하여 20이 나온것으로
2 + 20을 계산하여 22가 나온것입니다.
행복한 하루되세요 :)
-
관리자2026-02-19 17:55:25
안녕하세요 길벗수험서 운영팀입니다.
d%b + ++a*c--||c- --a>=10
이 식에서 a의 초기값이 3입니다.
위의 식에서 ++a 전치 연산자와 --a 후치 연산자가 있기 때문에
a의 값을 1증가 시켰다가 1감소를 하여 a의 값은 3으로 계산을 한것입니다.
22로 나오는것은 원래 프로그램에서는 ||(or연산)을 기준으로
좌측, 우측으로 식을 나누어 계산을 합니다.
or연산은 둘중 하나라도 만족하면 참이 되기 때문에 오른쪽 식을 전혀 계산을 하지 않고
좌측만 가지고 계산을 한것입니다.
d % b는 2이고
++a*c-- 는 a의 값을 1증가시켜 a는 4이고 c는 5로 계산을 하여 20이 나온것으로
2 + 20을 계산하여 22가 나온것입니다.
행복한 하루되세요 :)