책 내용 질문하기
213p
도서
2020 시나공 정보처리기능사 실기 : NCS 기반 전면 개편
페이지
213
조회수
263
작성일
2020-04-24
작성자
탈퇴*원
첨부파일

int=0,hap=0

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

system.out.printf("합은 %d %4d입니다./n", i, hap):

에서 답이

 

합은1 0입니다

합은 2 2입니다

이런식으로 되어있는데 왜 합이 1은 0이에요

 

합은 0이고 i의 1을 더해서 1 인거아닌가요?  

답변
2020-04-27 13:56:20

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

 

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회 : ③, ②(조건 참), ④

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

 

1회에서 출력되는 print 문은

"합은 (i의값) (hap의값)입니다."

가 출력되어야 합니다. 이것이 ④번이죠.

 

④번으로 오기 전에 수행한 초기값(①)을 통해 i는 1이 되었고, hap은 아무것도 수행되지 않았습니다. (hap에 i값이 더해지려면 ③번이 수행되어야 합니다.) 

때문에 "합은 1  0입니다."가 출력되게 됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2020-04-27 13:56:20

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

     

    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회 : ③, ②(조건 참), ④

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

     

    1회에서 출력되는 print 문은

    "합은 (i의값) (hap의값)입니다."

    가 출력되어야 합니다. 이것이 ④번이죠.

     

    ④번으로 오기 전에 수행한 초기값(①)을 통해 i는 1이 되었고, hap은 아무것도 수행되지 않았습니다. (hap에 i값이 더해지려면 ③번이 수행되어야 합니다.) 

    때문에 "합은 1  0입니다."가 출력되게 됩니다.

     

    행복한 하루되세요 :)

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