책 내용 질문하기
for문에 관한 질문입니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
0
조회수
51
작성일
2018-07-13
작성자
탈퇴*원
첨부파일

1. for(int i = 0 ; i<10 ; ++i){

hap += i;

}

2. for(int i = 0 ; i<10 ; i++){

hap += i;

}

3. for(int i = 0 ; i<10 ; ++i , hap += i);

4. for(int i = 0 ; i<10 ; i++ , hap += i);

교재안에서 위와같이 for문을 표현하는 방식이 4가지 있던데

1번과 2번은 우선적으로 0을 대입하여

초기값 - i = 0, hap = 0

1회차 - i = 1, hap = 1

......

9회차 - i = 9, hap = 0+1+....+8+9

10회차 - i = 10, end

동일하게 계산하는 방식으로 i++이든 ++i이든, i<10에 대해 1번과 2번은 i값과 hap값이 동일하고

또한 i<10과 i값과 결과값은 다르겠지만 i<=10에 대하여도 1번과 2번의 i값과 hap값이 동일한것 맞나요?

3번과 4번또한 우선적으로 0을 대입한후 바로 ++i 혹은 i++를 계산하후 hap값을 계산하고 i<10과 비교하므로

초기값 - i = 0, hap = 0

1회차 - i = 1, hap = 1

......

9회차 - i = 10, hap = 1+2+....+10

11회차 - end

3번과 4번 또한 어떠한 경우에도 마지막 i값과 hap값은 동일한것 맞나요?

결론적으로 1번=2번 , 3번=4번은 동일하다라고 생각하면 될런지요.

답변
2018-07-16 09:32:48

안녕하세요.

증감연산자가 단독으로 사용된 경우 단순히 1을 증가하는 용도로 사용됩니다.

증감연산자가

hap += ++i 와 같이 적용되면 이는

hap = hap + ++i와 같은 것으로

현재 i에 1을 증가한 값을 hap에 더하게 됩니다.

또한

hap += i++ 와 같이 적용되면 이는

hap = hap + i++와 같은 것으로

현재 i를 hap에 더한 후 i의 값을 1 증가하게 됩니다.

질문주신 1과 2는

i가 증가되어 10이 된 후 종료 기준값과 비교하여 조건을 만족하지 않으므로 반복문을 빠져나옵니다.

hap에 i는 9까지 적용되어 결과가 45로 산출됩니다.

질문주신 3과 4는

i가 증가되어 10이 된 후 종료 기준값과 비교하기 전

hap += i를 적용한 후 비교하므로

hap에 i는 10까지 적용되어 결과가 55로 산출됩니다.

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

  • *
    2018-07-16 09:32:48

    안녕하세요.

    증감연산자가 단독으로 사용된 경우 단순히 1을 증가하는 용도로 사용됩니다.

    증감연산자가

    hap += ++i 와 같이 적용되면 이는

    hap = hap + ++i와 같은 것으로

    현재 i에 1을 증가한 값을 hap에 더하게 됩니다.

    또한

    hap += i++ 와 같이 적용되면 이는

    hap = hap + i++와 같은 것으로

    현재 i를 hap에 더한 후 i의 값을 1 증가하게 됩니다.

    질문주신 1과 2는

    i가 증가되어 10이 된 후 종료 기준값과 비교하여 조건을 만족하지 않으므로 반복문을 빠져나옵니다.

    hap에 i는 9까지 적용되어 결과가 45로 산출됩니다.

    질문주신 3과 4는

    i가 증가되어 10이 된 후 종료 기준값과 비교하기 전

    hap += i를 적용한 후 비교하므로

    hap에 i는 10까지 적용되어 결과가 55로 산출됩니다.

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

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