책 내용 질문하기
p.121 문제25번
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
121
조회수
361
작성일
2019-03-18
작성자
탈퇴*원
i에 1을 대입하면 hap=hap+i라서 0+1=1이 아닌가요...왜 0으로 나오는지 궁금합니다
답변
2019-03-19 13:30:44

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

 

for문의 반복 범위를 확인해보시기 바랍니다.

 

for문에 중괄호{}가 있다면 해당 범위만을 반복하면 되지만, 중괄호{}가 없다면 세미콜론;이 있는 코드까지만을 반복 수행합니다.

 

일반적으로 for문 반복은 for문과 그 아래 문장까지만을 수행하지만, 이것은 for문 다음에 있는 세미콜론;이 다음문장에 있기 때문입니다.

 

예를 들어

for(int i=0 ;i<10; i++)

     printf("%d회 반복중");

 

위 for문을 실행하면 0~9회 반복중이라는 문장이 10개 찍히게 되겠죠.

세미콜론이 for의 다음 문장인 printf문 뒤에 있기 때문입니다. 반면

 

for(int i=0 ;i<10; i++);

printf("%d회 반복함");

 

위 for문을 실행하면 세미콜론이 for문의 다음문장이 아닌 for문 바로 뒤에 있기 때문에 다음 문장을 반복하는 것이 아닌 for문만 혼자 10회 반복된 후 마지막에 printf문을 출력하게 됩니다.

(결과 : 10회 반복함)

 

행복한 하루되세요 :)

  • 관리자
    2019-03-19 13:30:44

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

     

    for문의 반복 범위를 확인해보시기 바랍니다.

     

    for문에 중괄호{}가 있다면 해당 범위만을 반복하면 되지만, 중괄호{}가 없다면 세미콜론;이 있는 코드까지만을 반복 수행합니다.

     

    일반적으로 for문 반복은 for문과 그 아래 문장까지만을 수행하지만, 이것은 for문 다음에 있는 세미콜론;이 다음문장에 있기 때문입니다.

     

    예를 들어

    for(int i=0 ;i<10; i++)

         printf("%d회 반복중");

     

    위 for문을 실행하면 0~9회 반복중이라는 문장이 10개 찍히게 되겠죠.

    세미콜론이 for의 다음 문장인 printf문 뒤에 있기 때문입니다. 반면

     

    for(int i=0 ;i<10; i++);

    printf("%d회 반복함");

     

    위 for문을 실행하면 세미콜론이 for문의 다음문장이 아닌 for문 바로 뒤에 있기 때문에 다음 문장을 반복하는 것이 아닌 for문만 혼자 10회 반복된 후 마지막에 printf문을 출력하게 됩니다.

    (결과 : 10회 반복함)

     

    행복한 하루되세요 :)

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