책 내용 질문하기
정보처리산업기사 실기120쪽 34번
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
조회수
155
작성일
2018-09-22
작성자
탈퇴*원
첨부파일

반복문의 거짓조건까지 실행 해서 합은6 20입니다 가 나와야하는거 아닌가요?

디버깅엔 6 20까지 한다고 책에 나와있는데

왜 출력화면에선 5 14가 나오죠?

거기다가 왜 출력이 5개가 나오는거죠?

다른문제는 마지막 i값과 총합산값만 하나씩 나왔는데

이번 문제도 다른문제랑 별 다를거 없는 조건123식인데

25번같은것도 형태는 같은데

디버깅 11 65 맞으니까

출력도 11 65인데

왜 34번은 디버깅은 6 20이고

출력은 5 14인지..

20번도 25번이랑 마찬가지구요

34번만 이해가 안되네요 왜 디버깅과 출력이 다른건지

답변
2018-09-27 16:22:37

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

해당 문제는 20, 25번과는 조금 다릅니다.

int i, hap = 0;

for(i = 1; i <= 10; ++i, hap += i);
System.out.printf("%d, %d\n", i, hap);

위의 25번 문제의 for문은 마지막에 세미콜론(;)이 포함됨으로써 자기 반복만을 하고 종료합니다.

하지만 34번 문제의 경우

int i = 0, hap = 0;
for(i = 1; i <= 5; ++i, hap += i)
System.out.printf("합은%d %4d입니다.\n", i, hap);

for문 안에 printf함수가 포함되어 있는 형태로 for문만이 아닌 printf문 또한 같이 반복되게 됩니다.

즉, i가 1부터 5까지 증가하는 동안 그 아래의 system.out.printf()문 또한 반복하게 되죠.

프로그램 코드에서 세미콜론(;)이 어디에서 끝나는지 주의해서 확인하시면서 다시 한 번 디버깅 해보세요.

행복한 하루되세요.^^

  • *
    2018-09-27 16:22:37

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

    해당 문제는 20, 25번과는 조금 다릅니다.

    int i, hap = 0;

    for(i = 1; i <= 10; ++i, hap += i);
    System.out.printf("%d, %d\n", i, hap);

    위의 25번 문제의 for문은 마지막에 세미콜론(;)이 포함됨으로써 자기 반복만을 하고 종료합니다.

    하지만 34번 문제의 경우

    int i = 0, hap = 0;
    for(i = 1; i <= 5; ++i, hap += i)
    System.out.printf("합은%d %4d입니다.\n", i, hap);

    for문 안에 printf함수가 포함되어 있는 형태로 for문만이 아닌 printf문 또한 같이 반복되게 됩니다.

    즉, i가 1부터 5까지 증가하는 동안 그 아래의 system.out.printf()문 또한 반복하게 되죠.

    프로그램 코드에서 세미콜론(;)이 어디에서 끝나는지 주의해서 확인하시면서 다시 한 번 디버깅 해보세요.

    행복한 하루되세요.^^

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