책 내용 질문하기
116p 25번, 120p 34번 차이점이 궁금합니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
116,120
조회수
365
작성일
2019-04-05
작성자
탈퇴*원
첨부파일

116p 25번 

for(i = 1; i <= 10; ++i, hap += i);

System.out.printf("%d, %d\n", i, hap);

 

120p 34번 

for(i  = 1; i <= 5; ++i, hap += i);

System.out.printf("합은%d %4d입니다.\n", i, hap);

 

25번은 출력 결과가 11, 65로

i가 10일때 ++i 되어 i = 11, hap = 65까지 적용된 값이 출력 되는데

34번은 왜 "합은6    20입니다."까지 출력되지 않는 건가요?

 

"합은7    27입니다."부터 미출력 되어야 하는거 아닌가요?

답변
2019-04-08 11:41:05

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

 

출력문의 위치를 확인하세요.

120p의 34번은 출력문이 for문에 포함되어 있습니다.

 

for(i  = 1; i <= 5; ++i, hap += i);

   System.out.printf("합은%d %4d입니다.\n", i, hap);

가 아닌

 

for(i  = 1; i <= 5; ++i, hap += i)

   System.out.printf("합은%d %4d입니다.\n", i, hap);

입니다. for문 뒤의 세미콜론(;)이 존재하지 않아 아래의 출력문이 for문에 속하게 되죠.

 

때문에 34번의 출력문은 for문이 반복될 때에만 출력되게 됩니다.

i가 1~5가 될 때 까지 말이죠.

마지막에 for문을 벗어나기 전에 ++i와 hap+=i를 수행하지만 이것을 출력되지 않고 for문이 종료되므로

25번과는 구분되어야 합니다.

(i가 7인 경우는 존재할 수 없습니다.)

 

행복한 하루되세요 :)

  • 관리자
    2019-04-08 11:41:05

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

     

    출력문의 위치를 확인하세요.

    120p의 34번은 출력문이 for문에 포함되어 있습니다.

     

    for(i  = 1; i <= 5; ++i, hap += i);

       System.out.printf("합은%d %4d입니다.\n", i, hap);

    가 아닌

     

    for(i  = 1; i <= 5; ++i, hap += i)

       System.out.printf("합은%d %4d입니다.\n", i, hap);

    입니다. for문 뒤의 세미콜론(;)이 존재하지 않아 아래의 출력문이 for문에 속하게 되죠.

     

    때문에 34번의 출력문은 for문이 반복될 때에만 출력되게 됩니다.

    i가 1~5가 될 때 까지 말이죠.

    마지막에 for문을 벗어나기 전에 ++i와 hap+=i를 수행하지만 이것을 출력되지 않고 for문이 종료되므로

    25번과는 구분되어야 합니다.

    (i가 7인 경우는 존재할 수 없습니다.)

     

    행복한 하루되세요 :)

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