책 내용 질문하기
후치 연산자와 관련하여 질문 드립니다.
도서
2024 시나공 정보처리산업기사 필기 기본서
페이지
249,251
조회수
235
작성일
2024-06-05
작성자
임*성
첨부파일

2024 정보 처리 산업 기사 필기 도서 249p 6번 문항을 보면 'a=1, b=2, c=3, d=4'라는 조건 아래 

a+=++a%b++ ? c*d : b / c ; 에서 후치 연산자가 들어간 b++로 인해 ++a%b++ 까지는 b가 아직까지는 조건 그대로 2로 존재하여 해당 식의 계산 결과가 0 이고 따라서 거짓에 해당함으로 조건식 b/c를 실행해야함을 알 수 있습니다. 그렇다면 정리된 식은 a+= b/c 즉, a = a + b/c 인데 여기서 앞에 식에서 존재했지만 적용되지 않았던 후치 연산자 ++가 적용되어 b가 3이 되어 a = a + 3/3이고 a는 이전에 있었던 전치 연산자 ++ 가 적용되어 2가 되고 따라서 a = 2 + 1 임을 알 수 있습니다. 

여기서, 저는 후치 연산자의 개념을 후치 연산자가 처음 등장한 연산에서는 적용되지 않고 그 뒤에 나타나는 연산에서부터 증감 연산자로서 적용된다고 이해했었는데

 

2024 정보 처리 산업 기사 필기 도서 251p 2번 문항을 보면 'a=3, b=4, c=5, d=6'이라는 조건 아래

'd%b + ++a*c-- || c- --a>=10' 에서 연산자 우선순위에 따라 단항 연산자에 해당하는 증감 연산자 먼저 계산을 하면 a는 전치 연산자 ++와 --가 둘 다 존재하여 값에 변화 없이 그대로 3으로 계산됩니다. 그러면 우선 이를 풀어보자면 6%4 + 3*c-- || c- 3 >=10 이 되는데 3*c--에서 --는 후치 연산자이기에 해당 게산에서는 그대로 5가 되어 해당 식을 계산하면 

2 + 3*5 || c-3 >= 10 이 되고 이를 계산하면 17 || c-3 >= 10 이 되는데 여기서 저는 위에서 이해한대로 앞에 c에 붙어있던 후치연산자 --가 적용되어 c가 1만큼 감소한 4가 되어

17 || 4-3  >= 10 이 되고 4 -3 >=10 은 거짓이므로 0값을 갖게 되어 17 || 0 이고 0이 아닌 숫자 17은 참과 같으므로 둘 중 하나라도 참이면 참인 연산자 ||로 인해 참에 해당하는 1이 나와 답이 1이라고 판단했었는데, 정답 해설에는 뒤에 나오는 c - --a  >=10 의 결과가 제가 계산한 4 -3 >= 10 이 아니라 후치 연산자가 적용되지 않은 5-3 >= 10으로 나와있다는 것을 확인했습니다. 

이로 인해 저는 후치 연산자가 언제 적용되는가에 대해 의문이 들었는데 해당 문제를 예시로 들어서 설명해주시면 감사하겠습니다.

답변
2024-06-05 20:21:06

안녕하세요 길벗수험서 운영팀입니다.

 

후치 연산자가 많이 햇갈리는 부분입니다.

 

먼저 C언어를 기준으로 한 선치 후치 연산자 계산 방식임을 알려드립니다.

 

 

후치 연산자하나의 식이 수행된 후적용됩니다. 

 

먼저 교재 249페이지 6번 문항의 경우  삼항 연산자(조건?결과1:결과2)에서는 각 항이 별개의 식에 해당합니다.

 

즉 하나의 식이 수행된 후에 적용되는 후치 연산자는 삼항연산자의 '조건'부가 끝났을 때 

 

후치 연산자(b++)가 적용된 후 '결과1' 또는 '결과2'로 가게 되는 것이죠.

 

 

 

반면 교재 251페이지 2번 문항의 경우 식 전체가 하나의 식으로 구성되어 있습니다. 

 

때문에 c--는 이 식 전체가 끝날 때까지 1감소가 적용되는 일은 없으며

 

식 전체가 끝난후 1감소가 됩니다

 

   

열심히 공부하셔서 합격하시길 기원하겠습니다.  

 

행복한 하루되세요 :)

  • 관리자
    2024-06-05 20:21:06

    안녕하세요 길벗수험서 운영팀입니다.

     

    후치 연산자가 많이 햇갈리는 부분입니다.

     

    먼저 C언어를 기준으로 한 선치 후치 연산자 계산 방식임을 알려드립니다.

     

     

    후치 연산자하나의 식이 수행된 후적용됩니다. 

     

    먼저 교재 249페이지 6번 문항의 경우  삼항 연산자(조건?결과1:결과2)에서는 각 항이 별개의 식에 해당합니다.

     

    즉 하나의 식이 수행된 후에 적용되는 후치 연산자는 삼항연산자의 '조건'부가 끝났을 때 

     

    후치 연산자(b++)가 적용된 후 '결과1' 또는 '결과2'로 가게 되는 것이죠.

     

     

     

    반면 교재 251페이지 2번 문항의 경우 식 전체가 하나의 식으로 구성되어 있습니다. 

     

    때문에 c--는 이 식 전체가 끝날 때까지 1감소가 적용되는 일은 없으며

     

    식 전체가 끝난후 1감소가 됩니다

     

       

    열심히 공부하셔서 합격하시길 기원하겠습니다.  

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.