책 내용 질문하기
158쪽 39번 문제 질문드립니다.
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
158
조회수
233
작성일
2020-03-31
작성자
탈퇴*원
첨부파일
i의 값이 6일 때는 왜 출력되지 않는지 궁금합니다. 유투브 강의도 보았지만 잘 이해되지 않네요. 156쪽 33번 문제와 비교해보면 for문 안의 식이 같은데 왜 39번 문제에선 5까지만 출력되는 건가요??
답변
2020-04-01 09:42:53

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

 

[37번]

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

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

 

위의 코드를 아래로 단순화 시켜 보죠.

  for(①; ②; ③) 

     ④;

  

해당 문제에서 내부의 출력문은 i가 1일 때부터, 5일 때까지 총 5회 수행됩니다.

1회 : ①, ②(조건 참), ④

2회 : ③, ②(조건 참), ④

3회 : ③, ②(조건 참), ④

4회 : ③, ②(조건 참), ④

5회 : ③, ②(조건 참), ④

종료 : ③, ②(조건 거짓) <탈출>

 

마지막에 종료될 때 ③번(코드에서는 ++i, hap+=i)을 수행하지만 조건이 거짓이 되기때문에, 출력문(④)을 수행하지 않고 for문을 벗어나게 되기 때문에 i가 6인 시점은 출력없이 종료되게 됩니다.

 

 

 

[33번]

이 문제는 함정이 있습니다.

for문의 마지막에 세미콜론(;)이 있음으로써 for문은 내부에 포함하는 코드가 존재하지 않게 됩니다.

 

39번과 동일하게 만들어보면

  for(①; ②; ③);

 

이게 끝입니다. 그냥 혼자 반복하고 for문이 종료된 후에 i와 hap의 값을 출력하게 되는 것이죠.

때문에 39번에서는 출력문이 for문 내부에 있어 출력하지 못했던 마지막값이 여기 33번에서는 출력되는 것이죠.

 

행복한 하루되세요 :)

  • 관리자
    2020-04-01 09:42:53

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

     

    [37번]

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

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

     

    위의 코드를 아래로 단순화 시켜 보죠.

      for(①; ②; ③) 

         ④;

      

    해당 문제에서 내부의 출력문은 i가 1일 때부터, 5일 때까지 총 5회 수행됩니다.

    1회 : ①, ②(조건 참), ④

    2회 : ③, ②(조건 참), ④

    3회 : ③, ②(조건 참), ④

    4회 : ③, ②(조건 참), ④

    5회 : ③, ②(조건 참), ④

    종료 : ③, ②(조건 거짓) <탈출>

     

    마지막에 종료될 때 ③번(코드에서는 ++i, hap+=i)을 수행하지만 조건이 거짓이 되기때문에, 출력문(④)을 수행하지 않고 for문을 벗어나게 되기 때문에 i가 6인 시점은 출력없이 종료되게 됩니다.

     

     

     

    [33번]

    이 문제는 함정이 있습니다.

    for문의 마지막에 세미콜론(;)이 있음으로써 for문은 내부에 포함하는 코드가 존재하지 않게 됩니다.

     

    39번과 동일하게 만들어보면

      for(①; ②; ③);

     

    이게 끝입니다. 그냥 혼자 반복하고 for문이 종료된 후에 i와 hap의 값을 출력하게 되는 것이죠.

    때문에 39번에서는 출력문이 for문 내부에 있어 출력하지 못했던 마지막값이 여기 33번에서는 출력되는 것이죠.

     

    행복한 하루되세요 :)

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