책 내용 질문하기
p54 문제 2번 질문드립니다.
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
54
조회수
175
작성일
2020-03-16
작성자
탈퇴*원
첨부파일

2) d%b + ++a*c-- || c- --a>=10 

유튜브 강의에서 보면 --a / c-- / ++a 순으로 먼저 계산 후 % * 계산하라고 하셨는데

c-- 는 마이너스가 뒤에 있어 c=5 변수 그대로 계산했으면

c- --a 계산할때는 c-- 계산이 적용되어 4-3>=10 으로 되는거 아닌가요?  

답변
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언어를 기준으로 해설하고 있기 때문에 연속되는 전치, 후치연산자를 자바에 적용하는 경우 다를 수 있습니다. 이점에 대해서는 언어 간 혼동으로 인하여 시험에 출제될 가능성이 적으니, 이러한 순서로 풀어지는구나 정도만 알아두시면 될 것 같습니다.

 

행복한 하루되세요 :)

  • 관리자
    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언어를 기준으로 해설하고 있기 때문에 연속되는 전치, 후치연산자를 자바에 적용하는 경우 다를 수 있습니다. 이점에 대해서는 언어 간 혼동으로 인하여 시험에 출제될 가능성이 적으니, 이러한 순서로 풀어지는구나 정도만 알아두시면 될 것 같습니다.

     

    행복한 하루되세요 :)

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