책 내용 질문하기
전치연산자, 후치연산자 적용
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
조회수
100
작성일
2018-09-19
작성자
탈퇴*원
첨부파일

1번

p=1

for(int i=0; i<5; i++, p*=i)

이것과 코드는 조금 다르지만

2번

b=10

for(a=0; a<5; ++a, b-=a);

식3이" ,(콤마)" 로 나열되어 있을때는 두식을 차례로 수행한다는데

i++로 후치인 문제 1번과 ++a로 전치인 문제2번간에 계산 차이가 없어서 헷갈립니다.

두 문제 모두 증가시켜준뒤 콤마 뒤의 식을 계산하는데

이때는 전치 후치의 개념이 적용이 어떻게 되는거죠?

for문 안에서는 전치 후치의 개념에 상관없이 무조건 1을 먼저 증가시키나요?

답변
2018-09-20 10:37:20

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

전치수식 또는 후치수식 연산자의 경우 한 식 내에서만 영향에 차이가 있습니다.

a=1, b=2, c=3 이 있을 때,

a = ++b * c--와 같이 말이죠.

(위의 식이 끝나면 a=9, b=3, c=2가 됩니다.)

회원님이 예시로 드신 for문 1번과 2번의 경우 직접 말씀하신 것에 정답이 있습니다.

식3에 '두' 식이 나열되어 있다는 것이죠.

즉, i++ 또는 ++a이 하나의 식으로써 스스로를 증산하고 그대로 종료되어 버리는 하나의 식입니다.

이 때에는 전치수식과 후치수식의 의미가 전혀 없게 됩니다.

위 for문을 전치수식과 후치수식의 영향이 서로 다른 예시로 만들고 싶다면, 식3의 두 식들을 하나로 합치면 됩니다.

1번

p=1;

for(int i=0; i<5; p*=i++);

2번

b=10

for(a=0; a<5; b-=++a);

이렇게 말이죠.

위와 같이 변경될 경우, 1번은 p에 i갑이 곱해진 후 i가 1 증가하겠고, 2번은 b에 a가 1 더해진 값이 감산되는 연산을 수행하는 반복문이 되겠습니다.

행복한 하루되세요.^^

  • *
    2018-09-20 10:37:20

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

    전치수식 또는 후치수식 연산자의 경우 한 식 내에서만 영향에 차이가 있습니다.

    a=1, b=2, c=3 이 있을 때,

    a = ++b * c--와 같이 말이죠.

    (위의 식이 끝나면 a=9, b=3, c=2가 됩니다.)

    회원님이 예시로 드신 for문 1번과 2번의 경우 직접 말씀하신 것에 정답이 있습니다.

    식3에 '두' 식이 나열되어 있다는 것이죠.

    즉, i++ 또는 ++a이 하나의 식으로써 스스로를 증산하고 그대로 종료되어 버리는 하나의 식입니다.

    이 때에는 전치수식과 후치수식의 의미가 전혀 없게 됩니다.

    위 for문을 전치수식과 후치수식의 영향이 서로 다른 예시로 만들고 싶다면, 식3의 두 식들을 하나로 합치면 됩니다.

    1번

    p=1;

    for(int i=0; i<5; p*=i++);

    2번

    b=10

    for(a=0; a<5; b-=++a);

    이렇게 말이죠.

    위와 같이 변경될 경우, 1번은 p에 i갑이 곱해진 후 i가 1 증가하겠고, 2번은 b에 a가 1 더해진 값이 감산되는 연산을 수행하는 반복문이 되겠습니다.

    행복한 하루되세요.^^

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