책 내용 질문하기
while 반복문 문제에 대해서 궁금해서 질문드립니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
72
조회수
45
작성일
2018-03-06
작성자
탈퇴*원
첨부파일

while문에서

#include

main()

{

int i=0,hap=0;

while(i<10)

{

++i;

hap += i;

}

printf("%d %d \n",i,hap);

}

이것때문에 여쭤보려구 합니다.

결과가 10,55 이고 코딩 돌려본 결과도 10,55 를 확인하였는데요.

i가 10일떄 while 조건이 성립하지않기때문에

i는 10인것을 확인했는데 그럼 hap도 10을 더하지않은 45가 되야하지 않나요?

답변
2018-03-07 09:15:37

안녕하세요.

i가 0일 때

i<10 조건을 만족하므로 while 문을 진입합니다.

++i에 의해 i는 1이 되고

hap += i 에 의해 hap은 1이 됩니다.

i가 1인 상태로 다시 while문 조건을 확인합니다.

i<10 조건을 만족하므로 while 문을 진입합니다.

++i에 의해 i는 2가 되고

hap += i 에 의해 hap은 3이 됩니다.

i가 2인 상태로 다시 while문 조건을 확인합니다.

i<10 조건을 만족하므로 while 문을 진입합니다.

++i에 의해 i는 3이 되고

hap += i 에 의해 hap은 6이 됩니다.

즉 i가 2일 때 반복문 안에서 hap에 누적되는 i는 1이 증가한 3입니다.

i가 9일 때 반복문 안에서 hap에 누적되는 i는 1이 증가한 10이므로

hap에는 최종적으로 55가 저장됩니다.

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

  • *
    2018-03-07 09:15:37

    안녕하세요.

    i가 0일 때

    i<10 조건을 만족하므로 while 문을 진입합니다.

    ++i에 의해 i는 1이 되고

    hap += i 에 의해 hap은 1이 됩니다.

    i가 1인 상태로 다시 while문 조건을 확인합니다.

    i<10 조건을 만족하므로 while 문을 진입합니다.

    ++i에 의해 i는 2가 되고

    hap += i 에 의해 hap은 3이 됩니다.

    i가 2인 상태로 다시 while문 조건을 확인합니다.

    i<10 조건을 만족하므로 while 문을 진입합니다.

    ++i에 의해 i는 3이 되고

    hap += i 에 의해 hap은 6이 됩니다.

    즉 i가 2일 때 반복문 안에서 hap에 누적되는 i는 1이 증가한 3입니다.

    i가 9일 때 반복문 안에서 hap에 누적되는 i는 1이 증가한 10이므로

    hap에는 최종적으로 55가 저장됩니다.

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

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