책 내용 질문하기
정보처리기사 실기 예상문제은행(java) p.116 25번 문제 질문입니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
116
조회수
70
작성일
2018-05-15
작성자
탈퇴*원
첨부파일

public class ~ {

public static void main(String[] args) {

int i, hap = 0;

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

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

}

}

에서 for문을 어떻게 이해해야 하는지

디버깅 과정에서 i가 1일때 왜 hap+=i 연산을 안하고

i가 2일때 hap+=i연산을 하는지 궁금합니다.

답변
2018-05-16 09:26:02

안녕하세요.

for문에서는 먼저 초기값을 가지고 종료 기준값과 비교한 후 조건이 맞으면 반복문을 바로 수행한 후 증가값을 적용합니다.

아래쪽 for문에서

i는 1인 상태로 i<=10 조건에 만족하므로 for문을 바로 수행합니다. 수행할 for문 안쪽 내용이 없으므로 for문의 회전수만 증가합니다.

그래서 i가 1인 상태로 for문이 한 번 회전했을 때 i는 1, hap은 0입니다.

이제 for문이 한 번 회전한 후 증가값(++i, hap += i)을 수행하여, i는 2가되고 hap도 2가 됩니다.

종료 기준값(i<=10)을 만족하므로 for문을 수행하여 for문의 회전수를 증가합니다.

그래서 i가 2인 상태로 for문이 두 번 회전했을 때 i는 2, hap은 2입니다.

위의 내용을 기준으로 for문의 반복 과정을 이해한 후 다시 한 번 디버깅을 수행해 보세요.

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

  • *
    2018-05-16 09:26:02

    안녕하세요.

    for문에서는 먼저 초기값을 가지고 종료 기준값과 비교한 후 조건이 맞으면 반복문을 바로 수행한 후 증가값을 적용합니다.

    아래쪽 for문에서

    i는 1인 상태로 i<=10 조건에 만족하므로 for문을 바로 수행합니다. 수행할 for문 안쪽 내용이 없으므로 for문의 회전수만 증가합니다.

    그래서 i가 1인 상태로 for문이 한 번 회전했을 때 i는 1, hap은 0입니다.

    이제 for문이 한 번 회전한 후 증가값(++i, hap += i)을 수행하여, i는 2가되고 hap도 2가 됩니다.

    종료 기준값(i<=10)을 만족하므로 for문을 수행하여 for문의 회전수를 증가합니다.

    그래서 i가 2인 상태로 for문이 두 번 회전했을 때 i는 2, hap은 2입니다.

    위의 내용을 기준으로 for문의 반복 과정을 이해한 후 다시 한 번 디버깅을 수행해 보세요.

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

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