문제2의 연산에 대해
연산을 진행하는 순서가 (1) --a, (2) c--, (3) ++a라고 해설되어 있는데
or 및 and의 연산공식을 따른다면
좌항 먼저 계산 후, 좌항의 결과가 T/F인지에 따라 우항이 무시되지 않습니까?
해설의 의도가 앞선 연산자 우선순위의 '결합 규칙'을 지킨다는 것 같은데
그럼에도 왜 증감 연산자가 식 전체 기준 우측부터 계산되는지에 대한 명확한 이해가 어렵습니다.
결합규칙이란
우선순위가 같은 연산자가 연속되어 있을 때 (이항의 경우에는 1+1+1, 단항의 경우엔 !!0처럼)
어느 연산자부터 먼저 계산되는가에 관한 규칙으로 알고 있는데
문제의 ++a, c--, --a의 연산 순서에 관해서는
결합규칙에 의거해 우->좌가 아닌
식 계산 방향에 따른 (1)++a, (2) c--, (3) --a가 올바른 계산 순서라고 생각합니다.
JAVA의 문법에는 문외한이라, 혹 잘못 알고 있는게 아닌가 싶어 질문 남깁니다.
안녕하세요.
질문하신 내용은 매우 좋은 지적입니다.
결론부터 말씀드리면 질문하신 해석이 Java의 실제 평가 규칙에 더 가깝습니다.
교재 해설은 증감 연산자의 효과만 설명하기 위해 단순화한 것으로, 실제 실행 순서를 그대로 설명한 것은 아닙니다.
다만 원문자 번호가 실제 실행 순서를 의미하는 것으로 오해될 수 있다는 점을 확인하였습니다.
차기 수정 시에는 원문자 번호와 해설을 보완하여 실행 순서와 혼동되지 않도록 개선하겠습니다.
즐거운 하루 되세요.
-
관리자2026-07-14 11:20:25
안녕하세요.
질문하신 내용은 매우 좋은 지적입니다.
결론부터 말씀드리면 질문하신 해석이 Java의 실제 평가 규칙에 더 가깝습니다.
교재 해설은 증감 연산자의 효과만 설명하기 위해 단순화한 것으로, 실제 실행 순서를 그대로 설명한 것은 아닙니다.
다만 원문자 번호가 실제 실행 순서를 의미하는 것으로 오해될 수 있다는 점을 확인하였습니다.
차기 수정 시에는 원문자 번호와 해설을 보완하여 실행 순서와 혼동되지 않도록 개선하겠습니다.
즐거운 하루 되세요.
-
이*훈2026-07-14 21:59:03친절한 답변 감사합니다.