책 내용 질문하기
114p문제34,115p 문제 36 질문입니다
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
조회수
88
작성일
2017-03-31
작성자
첨부파일
문제35에서 해석을 보면 i=1일때 왜 hap이 0인거죠? I가 1이면 합은 1이나와야하는거 아닌가요 왜 i는1을선언하고 바로 출력문으로 빠져버리는건가요 그리고 문제 36또한 int i=1 hap=0이라고 선언이되고 while문에서 i<=6이라고 표현하면 디버깅 처음이 1 <= 6이니깐 밑으로 내려가서 hap=0+1가 1이되는데 해설집에 왜 i가 1인데 합이 0인지 모르겠습니다 이해가 안됩니다.
답변
2017-04-03 10:36:39

안녕하세요.

먼저 i가 1인 상태에서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
출력은 : 합은1 0입니다.

그런 다음 증가값 부분의 수식을 순차적으로 진행하여
++i로 인해 i는 2가되고 hap += i에 의해 hap은 2가 됩니다.
이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
출력은 : 합은2 2입니다.

그런 다음 증가값 부분의 수식을 순차적으로 진행하여
++i로 인해 i는 3이되고 hap += i에 의해 hap은 5가 됩니다.
이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
출력은 : 합은3 5입니다.

그런 다음 증가값 부분의 수식을 순차적으로 진행하여
++i로 인해 i는 4가되고 hap += i에 의해 hap은 9가 됩니다.
이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
출력은 : 합은4 9입니다.

그런 다음 증가값 부분의 수식을 순차적으로 진행하여
++i로 인해 i는 5가되고 hap += i에 의해 hap은 14가 됩니다.
이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
출력은 : 합은5 14입니다.

그런 다음 증가값 부분의 수식을 순차적으로 진행하여
++i로 인해 i는 6이되고 hap += i에 의해 hap은 20이 됩니다.
이어서 종료값을 비교합니다. i<=5에서 No이므로 반복문을 벗어난 후 프로그램을 종료합니다.

오늘도 즐거운 하루되세요.

  • *
    2017-04-03 10:36:39

    안녕하세요.

    먼저 i가 1인 상태에서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
    system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
    출력은 : 합은1 0입니다.

    그런 다음 증가값 부분의 수식을 순차적으로 진행하여
    ++i로 인해 i는 2가되고 hap += i에 의해 hap은 2가 됩니다.
    이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
    system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
    출력은 : 합은2 2입니다.

    그런 다음 증가값 부분의 수식을 순차적으로 진행하여
    ++i로 인해 i는 3이되고 hap += i에 의해 hap은 5가 됩니다.
    이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
    system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
    출력은 : 합은3 5입니다.

    그런 다음 증가값 부분의 수식을 순차적으로 진행하여
    ++i로 인해 i는 4가되고 hap += i에 의해 hap은 9가 됩니다.
    이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
    system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
    출력은 : 합은4 9입니다.

    그런 다음 증가값 부분의 수식을 순차적으로 진행하여
    ++i로 인해 i는 5가되고 hap += i에 의해 hap은 14가 됩니다.
    이어서 종료값을 비교합니다. i<=5에서 Yes이므로 반복문을 진입합니다.
    system.out.printf("합은%d %4d입니다.\n", i, hap); 에 의해
    출력은 : 합은5 14입니다.

    그런 다음 증가값 부분의 수식을 순차적으로 진행하여
    ++i로 인해 i는 6이되고 hap += i에 의해 hap은 20이 됩니다.
    이어서 종료값을 비교합니다. i<=5에서 No이므로 반복문을 벗어난 후 프로그램을 종료합니다.

    오늘도 즐거운 하루되세요.

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