책 내용 질문하기
정보처리기사 123p 40번 문제 질문입니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
123
조회수
86
작성일
2018-12-16
작성자
탈퇴*원
첨부파일
첨부파일 중에서 아래 답이 합이 왜 5인지 모르겠습니다 ㅠㅠㅠ 1에서 5까지 다 더해야되는거 아닙니까?
답변
2018-12-17 11:07:06

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

 

코드를 보실 때는 항상 주의깊게 확인하셔야 합니다.

 

해당 for 반복문은 하위 코드가 존재하지 않습니다.

 

for문의 하위 코드가 되려면

 

for(i=1; i<=5; ++i)

   hap += i;

 

가 되어야 합니다. for 문 뒤에 세미콜론(;)이 존재하면 안되며, 아래 코드는 해당 구문에 속해 있다는 의미로 여백이 있어야 합니다.

하지만 해당 코드의 경우

 

for(i=1; i<=5; ++i);

hap += i;

 

이므로, for문은 혼자 1부터 5까지 반복하고 마지막에 +1을 더해 i 혼자 6이 되며 종료됩니다.

 

행복한 하루 되세요 :)

  • 관리자
    2018-12-17 11:07:06

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

     

    코드를 보실 때는 항상 주의깊게 확인하셔야 합니다.

     

    해당 for 반복문은 하위 코드가 존재하지 않습니다.

     

    for문의 하위 코드가 되려면

     

    for(i=1; i<=5; ++i)

       hap += i;

     

    가 되어야 합니다. for 문 뒤에 세미콜론(;)이 존재하면 안되며, 아래 코드는 해당 구문에 속해 있다는 의미로 여백이 있어야 합니다.

    하지만 해당 코드의 경우

     

    for(i=1; i<=5; ++i);

    hap += i;

     

    이므로, for문은 혼자 1부터 5까지 반복하고 마지막에 +1을 더해 i 혼자 6이 되며 종료됩니다.

     

    행복한 하루 되세요 :)

  • 관리자
    2018-12-18 11:18:23

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

     

    하위 코드라고 함은 해당 명령어에 속한 코드를 의미합니다.

     

    책 앞의 반복문이나 조건문같은 명령어들은 하위 코드를 가질 수 있음을 내포하고 있습니다.

     

    if (3>1)

      printf("참");

    else

      printf("거짓");

     

    위의 코드에서 if는 하위코드로 printf를 가집니다. else는 if의 부가적인 코드로 거짓을 출력하는 printf를 하위코드로 갖고 있죠. 구분은 세미콜론(;)과 앞의 여백으로 구분합니다.

     

    for문도 마찬가지 입니다.

     

    for (i=1; i<=5; i++)

      printf("%d",i);

     

    위와 같이 출력했을 때, 1부터 5까지 수가 차례대로 출력되게 됩니다. for문이 printf를 하위코드로 갖고 있기 때문이죠. 이와 반대로

     

    for (i=1; i<=5; i++);

    printf("%d",i);

     

    위의 경우 for문은 세미콜론(;)으로 종료됨으로써, 하위 코드를 갖고 있지 않고 끝나 버렸으므로, 혼자 5까지 반복한 뒤 마지막에 1을 더해 i는 6을 갖고 종료됩니다. 즉, printf로 6만 출력되고 종료되게 되죠.

     

    마지막에 +1이 되는 이유는 for문의 각 인자들의 실행 순서를 이해하시면 됩니다.

     

    for(; ; ) {

    ;

    }

     

    위의 for문이 3회 반복한다고 가정했을 때, 순서는

    1: , (조건 참), ,

    2: (조건 참), ,

    3: (조건 참), ,

    마지막 : (조건 거짓) <탈출>

     

    이와 같이 되게 때문에 ③이 3번 수행되면서 만약 for(i=1;i<=3;i++) 이었다면 i는 4가 되고 끝나게 되죠.

     

    행복한 하루 되세요.

  • *
    2018-12-18 11:06:27

    여기서 하위코드 개념을 잘 모르겠습니다 ㅎㅎ

    하위코드가 아니면 왜 혼자 반복하고 5에서 +1을 더하는지 모르겠습니다!

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