책 내용 질문하기
java 코드(do while문으로 1부터 100까지 더하기)
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
조회수
99
작성일
2017-09-24
작성자
탈퇴*원
첨부파일

부록 자바코드에서

1번

do

{

i++;

j += i;

} while( i < 100);

이 값과

2번

do

{

j += i;

i++;

} while( i <= 100);

질문.

1. 이 값이 다른가요?

2. 2번 do while 문에서 while 뒤에 조건이 "(i <=100)" 이 아니라 "(i < 99)" 이면 99까지 더한 값이 나오나요?

답변
2017-09-25 10:09:19

안녕하세요.

1번은 증가한 후 누적하는 것이죠.

2번은 누적한 후 증가하는 것입니다.

i의 초기값이 어떻게 주어지는지에 따라 j에 누적되는 값이 달라질 수 있습니다.

i가 0으로 초기화 된 상태에서 진행된다면

1번은

i++에 의해 1이 된 후 j += i에 의해 1이 j에 누적됩니다.

2번은

j += i에 의해 0이 j에 누적됩니다.

이후 i++에 의해 i는 1이 됩니다.

1회전 후 1번은 j에 1이, 2번은 j에 0이 저장됩니다.

하지만 i의 값은 동일하므로 반복되는 회수는 같습니다.

2번에서 i<=100으로 종료 조건을 두면

j+=i에 의해 j에는 99까지 누적되고

i++에 의해 i가 100인 상태에서

i<=100이 Yes가 되어 빠져나옵니다.

즉 i는 100이 아니라 99까지만 누적되는 것이죠.

하지만 1번은 100까지 누적됩니다.

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

  • *
    2017-09-25 10:09:19

    안녕하세요.

    1번은 증가한 후 누적하는 것이죠.

    2번은 누적한 후 증가하는 것입니다.

    i의 초기값이 어떻게 주어지는지에 따라 j에 누적되는 값이 달라질 수 있습니다.

    i가 0으로 초기화 된 상태에서 진행된다면

    1번은

    i++에 의해 1이 된 후 j += i에 의해 1이 j에 누적됩니다.

    2번은

    j += i에 의해 0이 j에 누적됩니다.

    이후 i++에 의해 i는 1이 됩니다.

    1회전 후 1번은 j에 1이, 2번은 j에 0이 저장됩니다.

    하지만 i의 값은 동일하므로 반복되는 회수는 같습니다.

    2번에서 i<=100으로 종료 조건을 두면

    j+=i에 의해 j에는 99까지 누적되고

    i++에 의해 i가 100인 상태에서

    i<=100이 Yes가 되어 빠져나옵니다.

    즉 i는 100이 아니라 99까지만 누적되는 것이죠.

    하지만 1번은 100까지 누적됩니다.

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

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