책 내용 질문하기
for문에서의 선치 후치 연산
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
84
조회수
58
작성일
2018-08-31
작성자
탈퇴*원
첨부파일

문제 3뿐만 아니라 for문에서 ++i 일때와 i++일때의 개념이 헷갈리는데 어떤게 들어와도 같은 결과 값이 나오는건가요?

아니면 i++일때는 한번 실행이 끝나면 i++를 하고 다음 조건문 ++i는 i를 먼저 증가시킨후 for문 실행 빠져나가면서 다시 조건문

이 개념이 맞는건가요??

답변
2018-09-03 16:02:53

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

문제 3뿐만 아니라 for문에서 ++i 일때와 i++일때의 개념이 헷갈리는데 어떤게 들어와도 같은 결과 값이 나오는건가요?

[답변]

아닙니다. for문에서 증가값을 입력하는 부분에 ++i 또는 i++이 들어간다고 하여, for문의 실행 순서가 변경되는 것은 아닙니다. 증감연산자가 단독으로 사용되어 단순이 1을 증가하거나 감소하는 경우에는 선치 연산자가 들어가든, 후치 연산자가 들어가든 1을 증가하거나 감소하는 역할만 수행합니다.

선치, 후치 수식의 가장 기본적인 예는 아래와 같습니다.

<코드>

int i=5, j=5;

printf("%d, %d\n", ++i, j++);

printf("%d, %d", i, j);

위와 같은 수식이 있을 때, i는 두 번째 printf문을 수행하기 전에 1이 먼저 가산되어 두 번째와 세 번째 printf문 모두에서 6이 출력됩니다.

j는 두 번째 printf문을 수행한 후 1이 가산되어 두 번째 printf문에서는 5가, 세 번째 printf문에서는 6이 출력되어 아래와 같은 결과가 출력됩니다.

<결과>

6, 5

6, 6

행복한 하루되세요.^^

  • *
    2018-09-03 16:02:53

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

    문제 3뿐만 아니라 for문에서 ++i 일때와 i++일때의 개념이 헷갈리는데 어떤게 들어와도 같은 결과 값이 나오는건가요?

    [답변]

    아닙니다. for문에서 증가값을 입력하는 부분에 ++i 또는 i++이 들어간다고 하여, for문의 실행 순서가 변경되는 것은 아닙니다. 증감연산자가 단독으로 사용되어 단순이 1을 증가하거나 감소하는 경우에는 선치 연산자가 들어가든, 후치 연산자가 들어가든 1을 증가하거나 감소하는 역할만 수행합니다.

    선치, 후치 수식의 가장 기본적인 예는 아래와 같습니다.

    <코드>

    int i=5, j=5;

    printf("%d, %d\n", ++i, j++);

    printf("%d, %d", i, j);

    위와 같은 수식이 있을 때, i는 두 번째 printf문을 수행하기 전에 1이 먼저 가산되어 두 번째와 세 번째 printf문 모두에서 6이 출력됩니다.

    j는 두 번째 printf문을 수행한 후 1이 가산되어 두 번째 printf문에서는 5가, 세 번째 printf문에서는 6이 출력되어 아래와 같은 결과가 출력됩니다.

    <결과>

    6, 5

    6, 6

    행복한 하루되세요.^^

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