책 내용 질문하기
P581 예제와 P583번 문제의 결과값이 틀린 이유?
도서
2020 시나공 정보처리기사 필기 : NCS 기반 전면 개편 [기본서]
페이지
582,583
조회수
441
작성일
2020-05-15
작성자
탈퇴*원
첨부파일
P581은 a가 10을 초과할때의 결과값 11, 25인데 P583의 2번 문제는 10미만의 결과값인 9, 45가 답으로 되어 있어 그 차이를 모르겠습니다. 자세히 설명 부탁드려요. 감사합니다.
답변
2020-05-15 09:56:42

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

 

[581쪽 하단 예제]

do~while문의 조건은 a<10, 증가값 역할을 하는 a는 2씩 증가합니다.

마지막 값이 어떻게 산출되는지 디버깅해보세요.

hap이 16, a가 9일 때, 5번 while 조건을 만나면 a<10은 참, 다시 hap+=a, a+=2를 수행하게 되어, hap은 25, a는 11이 됩니다.

 

[583쪽 2번]

do~while문의 조건은 n<10, 증가값 역할을 하는 n은 1씩 증가합니다.

이 문제는 위의 문제와 달리 출력문이 내부에 존재합니다. 변수 n이 후치연산인 이상 n의 마지막 증가값이 출력문에 반영되지는 않겠네요.

do~while문의 식을 풀어보면 이렇게 됩니다.

t+=n;

출력

n+=1;

 

이제 마지막 부분을 디버깅해보죠.

n이 8일 때 t에 n이 더해져서 t는 36이 되고, 화면에 출력됩니다.

n=8, t=36

이후 n++로 인해 n은 9가 됩니다.

while(n<10)이 참이므로 다시 위로 돌아가

t에 n이 더해져서 t는 45가 되고, 화면에 출력됩니다.

n=9, t=45

이후 n++로 인해 n은 10이 됩니다.

while(n<10)이 거짓이므로 빠져나가고, 프로그램은 종료됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2020-05-15 09:56:42

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

     

    [581쪽 하단 예제]

    do~while문의 조건은 a<10, 증가값 역할을 하는 a는 2씩 증가합니다.

    마지막 값이 어떻게 산출되는지 디버깅해보세요.

    hap이 16, a가 9일 때, 5번 while 조건을 만나면 a<10은 참, 다시 hap+=a, a+=2를 수행하게 되어, hap은 25, a는 11이 됩니다.

     

    [583쪽 2번]

    do~while문의 조건은 n<10, 증가값 역할을 하는 n은 1씩 증가합니다.

    이 문제는 위의 문제와 달리 출력문이 내부에 존재합니다. 변수 n이 후치연산인 이상 n의 마지막 증가값이 출력문에 반영되지는 않겠네요.

    do~while문의 식을 풀어보면 이렇게 됩니다.

    t+=n;

    출력

    n+=1;

     

    이제 마지막 부분을 디버깅해보죠.

    n이 8일 때 t에 n이 더해져서 t는 36이 되고, 화면에 출력됩니다.

    n=8, t=36

    이후 n++로 인해 n은 9가 됩니다.

    while(n<10)이 참이므로 다시 위로 돌아가

    t에 n이 더해져서 t는 45가 되고, 화면에 출력됩니다.

    n=9, t=45

    이후 n++로 인해 n은 10이 됩니다.

    while(n<10)이 거짓이므로 빠져나가고, 프로그램은 종료됩니다.

     

    행복한 하루되세요 :)

  • 관리자
    2020-05-18 11:07:33

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

     

    581쪽에서는

    a가 2씩 증가한다는 점,

    출력문이 반복문 밖에 있다는 점,

    때문에 마지막에 증가한 값이 출력된다는 것

     

    583쪽에서는

    n이 1씩 증가한다는 점,

    출력문이 반복문 안에 있다는 점(추가로 출력 후 n이 증가한다는 점)

    때문에 n의 마지막 증가값이 출력되지 않는다는 점

     

    정도의 차이가 있겠네요.

     

    행복한 하루되세요 :)

  • *
    2020-05-15 12:40:35

    두문제의 차이점은 무엇인가요?

    결과를 묻는 질문인데 한문제는 초과되는 값을,

    한문제는 미만되는 걊을 정답으로 하였는데..

    도대체 그 차이를 모르겠습니다.

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