책 내용 질문하기
561쪽 문제2-1 질문드립니다.
도서
2020 시나공 정보처리기사 필기 : NCS 기반 전면 개편 [기본서]
페이지
561
조회수
371
작성일
2020-03-03
작성자
탈퇴*원
첨부파일

스크린샷 확인부탁드립니다.

 

(2/17에 답변하신 동일한 질문입니다.)

 

 

JAVA로 실행시켰을 때, 

a= ++a + ++a;는 이전 질문자분이 올리신대로 a=7이라는 값이 출력됩니다.

답지와 지난 답변 모두 8이라고 답변해주셨는데, 확인 부탁드립니다.

 

답변
2020-03-03 10:44:51

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

 

다음은 C 언어에서 수행한 결과입니다.

 


 

먼저 해당 문제들은 C언어를 기준으로 제작된 문제임을 알려드립니다.

 

전치 연산자와 후치 연산자의 연속 적용은 C언어와 Java의 알고리즘이 조금 다릅니다.

(서로 차이점이 혼동될 여지가 있어 시험에 출제될 가능성은 거의 없어 보입니다.)

 

먼저 C는 해설에서 설명드린 것과 같이 식 전체에 앞서 전치가 적용, 식 전체를 수행 후 후치가 적용됩니다.

 

Java는 식 전체가 아닌 수행 순서(전차 후치 연산자 수행 순서를 제외한)에 맞춰 전치 후치가 개별로 적용됩니다.

 

즉, a = ++a + ++a; 가 있을 때, 앞의 a를 수행할 때는 전치연산자 ++이 적용되어 3이 되고, 뒤의 a를 수행할 때 다시 전치연산자 ++을 만나 4가 되어, 각각의 수를 더하는 방식이죠. (a=7)

 

이에 따라 561쪽의 5번도 정답은 동일하나 풀이 방식이 달라집니다.

첫번째 ++c는 5, 두번째 c++은 5, 세번째 ++c는 두번째의 후치연산자와 합쳐져서 7, 네번째의 c++은 7이 되어 정답인 24가 나오게 되죠.

(마지막에 c는 네번째의 후치연산자가 적용되어 c=8)

 

행복한 하루되세요 :)

  • 관리자
    2020-03-03 10:44:51

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

     

    다음은 C 언어에서 수행한 결과입니다.

     


     

    먼저 해당 문제들은 C언어를 기준으로 제작된 문제임을 알려드립니다.

     

    전치 연산자와 후치 연산자의 연속 적용은 C언어와 Java의 알고리즘이 조금 다릅니다.

    (서로 차이점이 혼동될 여지가 있어 시험에 출제될 가능성은 거의 없어 보입니다.)

     

    먼저 C는 해설에서 설명드린 것과 같이 식 전체에 앞서 전치가 적용, 식 전체를 수행 후 후치가 적용됩니다.

     

    Java는 식 전체가 아닌 수행 순서(전차 후치 연산자 수행 순서를 제외한)에 맞춰 전치 후치가 개별로 적용됩니다.

     

    즉, a = ++a + ++a; 가 있을 때, 앞의 a를 수행할 때는 전치연산자 ++이 적용되어 3이 되고, 뒤의 a를 수행할 때 다시 전치연산자 ++을 만나 4가 되어, 각각의 수를 더하는 방식이죠. (a=7)

     

    이에 따라 561쪽의 5번도 정답은 동일하나 풀이 방식이 달라집니다.

    첫번째 ++c는 5, 두번째 c++은 5, 세번째 ++c는 두번째의 후치연산자와 합쳐져서 7, 네번째의 c++은 7이 되어 정답인 24가 나오게 되죠.

    (마지막에 c는 네번째의 후치연산자가 적용되어 c=8)

     

    행복한 하루되세요 :)

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