책 내용 질문하기
121쪽 문제 25번 자바 프로그램 분석
도서
2021 시나공 정보처리산업기사 실기
페이지
121
조회수
420
작성일
2021-04-09
작성자
탈퇴*원
첨부파일

int i, hap=0

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

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


이거 디버깅 하는데 왜 답이 11 , 65인가요

11, 66 아닌가요?

 

답지에 보면 i가 1일때  hap에 1이 안 더해지는데 왜그런지 모르겠어서 올립니다

답변
2021-04-13 10:27:56

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

 

for문을 단순화 시켜 보죠.

  for(①; ②; ③) 

     ④;

  

for문이 총 5회 수행된다고 가정하면,

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

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

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

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

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

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

와 같이 됩니다.

 

이 것을 해당 코드에 적용하면, ④번이 사라지고, ③번이 두개로 늘어나겠네요.

 

1회 : ①, ②(조건 참)

2회 : ③-1 ③-2, ②(조건 참)

3회 : ③-1 ③-2, ②(조건 참)

4회 : ③-1 ③-2, ②(조건 참)

5회 : ③-1 ③-2, ②(조건 참)

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

 

위 방식대로 수행하면 i의 초기값은 ①번에서 주어지고, 이후 ③-1에서 1을 증가시킨 후, ③-2에서 2가 된 i의 값을 합산하면서 다음 과정을 수행을 하게 되죠. 때문에 1이 더해지는 일은 없습니다.

 

행복한 하루되세요 :)

  • 관리자
    2021-04-13 10:27:56

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

     

    for문을 단순화 시켜 보죠.

      for(①; ②; ③) 

         ④;

      

    for문이 총 5회 수행된다고 가정하면,

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

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

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

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

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

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

    와 같이 됩니다.

     

    이 것을 해당 코드에 적용하면, ④번이 사라지고, ③번이 두개로 늘어나겠네요.

     

    1회 : ①, ②(조건 참)

    2회 : ③-1 ③-2, ②(조건 참)

    3회 : ③-1 ③-2, ②(조건 참)

    4회 : ③-1 ③-2, ②(조건 참)

    5회 : ③-1 ③-2, ②(조건 참)

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

     

    위 방식대로 수행하면 i의 초기값은 ①번에서 주어지고, 이후 ③-1에서 1을 증가시킨 후, ③-2에서 2가 된 i의 값을 합산하면서 다음 과정을 수행을 하게 되죠. 때문에 1이 더해지는 일은 없습니다.

     

    행복한 하루되세요 :)

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