책 내용 질문하기
for문 질문드립니다
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
114
조회수
150
작성일
2017-03-26
작성자
첨부파일

114 페이지 답이 합은 1 ~ 합은 5 까지로 나와있는데

for문 안에서 i가1부터 시작 -> ++i 를 해서 2가 돼고 그때 hap이 2가 되니까

이걸 실행한 다음 출력을 하니까 출력이 '합은2~' 부터 되어야 하는거 아닌가요?

그리고 i가 5일때 i<=5 이 조건을 만족하니까 +서 6이되고 hap이 20이 되어서

'합은6 20입니다'까지 출력되어야 하는거아닌가요??

그리고 117쪽 문제40번에서는 왜 위 문제처럼 모든 문장이 출력되지 않고 한문장만 출력되나요?

for문이 마지막 문장인 system.out~ 까지 반복되는게 아닌가요?

그리고 i가 5일때 실행해서 i가6이 되고 hap은 1부터 6까지 더해서 21이 되는거 아닌가요?

답변
2017-03-27 14:49:52

안녕하세요.

1)

먼저 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이므로 반복문을 벗어난 후 프로그램을 종료합니다.

2)

반복문 for문 뒤에 ;이 있는 경우 for문만 반복됩니다.

그래서 for문만 반복된 후 출력은 for문이 종료된 후 한 번만 수행하게 됩니다.

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

  • *
    2017-03-27 14:49:52

    안녕하세요.

    1)

    먼저 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이므로 반복문을 벗어난 후 프로그램을 종료합니다.

    2)

    반복문 for문 뒤에 ;이 있는 경우 for문만 반복됩니다.

    그래서 for문만 반복된 후 출력은 for문이 종료된 후 한 번만 수행하게 됩니다.

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

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