책 내용 질문하기
문제 20번 질문
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
109
조회수
134
작성일
2017-08-01
작성자
탈퇴*원
첨부파일

int a, hap=0;

for(a=0; a<10; ++a, hap+=a);

이 부분 해설을 보면 주의할 점으로

반복문을 벗어날 때 반복변수는 'a<10'의 결과가 거짓이 되도록 증가한 후 빠져나간다는 것이다. 여기서는 a가 10보다 작은 동안에는 반복문을 수행하고, a가 1 증가하여 10이 되었을 때, 'hap+=a'를 수행한 다음 반복문을 탈출한다는것이다.

이렇게 써있는데 그 전에 유사한 문제들을 보면은 i가 10이 되었을 때 그냥 벗어난다고 해설되어 있는데

왜 이 문제는 최종값을 넘어섰는데도 'hap+=a'를 수행하나요?

10이 되었더라도 최종값에 함께 식이 쓰여져있기 때문인가요? 헷갈립니당

답변
2017-08-07 10:28:31

안녕하세요.

for문의 형식은

for(초기값, 종료값, 증가값)

으로 구성되어 있는데, 증가값 부분에 콤마(,) 연산자에 의해 식이 2개가 나열되어 있습니다.

그러므로 두 식, 즉 ++a를 수행한 후 이어서 hap += a도 수행한 다음에 종료값을 비교하므로 a가 10인 상태로 hap += a도 수행된 후 종료값과 비교되므로 for문을 빠져나오게 됩니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-08-07 10:28:31

    안녕하세요.

    for문의 형식은

    for(초기값, 종료값, 증가값)

    으로 구성되어 있는데, 증가값 부분에 콤마(,) 연산자에 의해 식이 2개가 나열되어 있습니다.

    그러므로 두 식, 즉 ++a를 수행한 후 이어서 hap += a도 수행한 다음에 종료값을 비교하므로 a가 10인 상태로 hap += a도 수행된 후 종료값과 비교되므로 for문을 빠져나오게 됩니다.

    오늘도 즐거운 하루 되세요.

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