책 내용 질문하기
580페이지 예제 for문을 이용하여 1~5까지의 합을 더하는 다양한 방법
도서
2020 시나공 정보처리기사 필기 : NCS 기반 전면 개편 [기본서]
페이지
580
조회수
359
작성일
2020-04-08
작성자
탈퇴*원
첨부파일

1~4번째 코드가 동일하게 15가 나온다고 하는데

2,4번의 경우 조건식이 a<5, a++<5 인데 어떻게 이게 15가 나올 수 있는지 궁금합니다.

 

특히 2번의 경우에는 증가값이 후위증가값인 것을 감안한다고 해도 조건식이 a<5 이므로 조건식에 부합되지 않아 계산이 불가한 것 아닌가요?

그렇기 때문에 2번의 경우 a=0,1,2,3,4 일 때만 hap 연산되어 답은 10이 나와야 되지 않습니까?

 

 

그리고 4번의 경우에는 a++이 5보다 작아야 한다고 하는데 정확히 무슨 뜻인지 이해가 되질 않습니다.

a=0,1,2,3,4 의 경우에만 hap 계산이 가능하여 답은 10 아닌가요?

답변
2020-04-08 11:49:57

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

 

[2번 문제]

int a, hap = 0;

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

 

후치수식의 경우 '식'을 기준으로 전치와 후치를 계산합니다.

for문의 경우 일반적으로 3개의 식을 사용합니다. for(식1; 식2; 식3)

하지만 이 경우 4개가 사용되었죠. (쉼표(,)는 식을 구분할 때 사용하는 구분자입니다.)

for(식1; 식2; 식3, 식4)

이 때 a++은 단일로 사용되는 하나의 식이므로, a=a+1과 동일합니다. 때문에 뒤의 hap+=a에는 a++이 수행되어 a가 증가한 값이 hap에 더해지게 되죠.

 

 

[4번 문제]

int a, hap = 0;

for (a = 0; a++ < 5;)

    hap += a;

 

579쪽 for문의 순서도를 참고해주세요.

 

for문이 처음 수행되면

1회에는 초기값 -> 조건식(참) -> 실행할코드

2회부터는 증가값 -> 조건식(참) -> 실행할코드

마지막에는 증가값 -> 조건식(참) -> 실행할코드, 를 수행한 후,  증가값 -> 조건식(거짓) 으로 빠져나가게 됩니다.

 

때문에 초기값 -> 조건식(a++<5 = 0<5)을 수행하고 나면 a는 1이 되고, 그 다음 실행할코드를 수행하게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2020-04-08 11:49:57

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

     

    [2번 문제]

    int a, hap = 0;

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

     

    후치수식의 경우 '식'을 기준으로 전치와 후치를 계산합니다.

    for문의 경우 일반적으로 3개의 식을 사용합니다. for(식1; 식2; 식3)

    하지만 이 경우 4개가 사용되었죠. (쉼표(,)는 식을 구분할 때 사용하는 구분자입니다.)

    for(식1; 식2; 식3, 식4)

    이 때 a++은 단일로 사용되는 하나의 식이므로, a=a+1과 동일합니다. 때문에 뒤의 hap+=a에는 a++이 수행되어 a가 증가한 값이 hap에 더해지게 되죠.

     

     

    [4번 문제]

    int a, hap = 0;

    for (a = 0; a++ < 5;)

        hap += a;

     

    579쪽 for문의 순서도를 참고해주세요.

     

    for문이 처음 수행되면

    1회에는 초기값 -> 조건식(참) -> 실행할코드

    2회부터는 증가값 -> 조건식(참) -> 실행할코드

    마지막에는 증가값 -> 조건식(참) -> 실행할코드, 를 수행한 후,  증가값 -> 조건식(거짓) 으로 빠져나가게 됩니다.

     

    때문에 초기값 -> 조건식(a++<5 = 0<5)을 수행하고 나면 a는 1이 되고, 그 다음 실행할코드를 수행하게 되죠.

     

    행복한 하루되세요 :)

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