책 내용 질문하기
jave 문제 46번
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
120
조회수
68
작성일
2017-04-04
작성자
탈퇴*원
첨부파일

해설을 봐도 약간 이해가 부족하게 느낍니다 자세히 설명부탁드립니다.

답변
2017-04-05 10:51:51

안녕하세요.

numAry에는 0, 0, 0, 0, 3 이 저장되어 있습니다.

numAry[0]에는 0이

numAry[1]에는 0이

numAry[2]에는 0이

numAry[3]에는 0이

numAry[4]에는 3이 저장되어 있는 것이죠.

바깥쪽 for문

j는 초기값 4를 가지고 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

안쪽 for문

i는 초기값 4를 가지고 종료값 i > j 조건을 만족하지 않으므로 반복문을 수행하지 않고 빠져나옵니다.

다시

바깥쪽 for문

j는 증가값 --j로 인해 1 감소되어 3이된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

안쪽 for문

i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[3]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[3]의 값이 변경됩니다.

numAry[0]에는 0

numAry[1]에는 0

numAry[2]에는 0

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

다시

바깥쪽 for문

j는 증가값 --j로 인해 1 감소되어 2가된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

안쪽 for문

i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[2]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다.

numAry[0]에는 0

numAry[1]에는 0

numAry[2]에는 3

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[2]에 numAry[3]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다.

numAry[0]에는 0

numAry[1]에는 0

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 2이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

다시

바깥쪽 for문

j는 증가값 --j로 인해 1 감소되어 1이된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

안쪽 for문

i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[1]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다.

numAry[0]에는 0

numAry[1]에는 3

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[1]에 numAry[3]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다.

numAry[0]에는 0

numAry[1]에는 6

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 2가된 상태에서 종료값 i > j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[1]에 numAry[2]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다.

numAry[0]에는 0

numAry[1]에는 12

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 1이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

다시

바깥쪽 for문

j는 증가값 --j로 인해 1 감소되어 0이된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

안쪽 for문

i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[0]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

numAry[0]에는 3

numAry[1]에는 12

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[0]에 numAry[3]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

numAry[0]에는 6

numAry[1]에는 12

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 2가된 상태에서 종료값 i > j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[0]에 numAry[2]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

numAry[0]에는 12

numAry[1]에는 12

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 1이된 상태에서 종료값 i > j 조건을 만족하므로

numAry[j] += numAry[i];를 수행하여

numAry[0]에 numAry[1]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

numAry[0]에는 24

numAry[1]에는 12

numAry[2]에는 6

numAry[3]에는 3

numAry[4]에는 3이 저장되어 있습니다.

안쪽 for문

i는 증가값 --i로 인해 1 감소되어 1이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

다시

바깥쪽 for문

j는 증가값 --j로 인해 1 감소되어 -1이된 상태에서 종료값 j>=0 조건에 만족하지 않으므로 반복문을 빠져나옵니다.

그래서 결국 최종적으로 nuymAry 배열의 값은

24 12 6 3 3이 되므로 화면에는 한 줄씩 출력되어

24

12

6

3

3

이 된 것입니다

수행 과정을 510쪽 디비겅 표와 함께 이해하시면 쉽게 이해하실 수 있습니다.

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

  • *
    2017-04-05 10:51:51

    안녕하세요.

    numAry에는 0, 0, 0, 0, 3 이 저장되어 있습니다.

    numAry[0]에는 0이

    numAry[1]에는 0이

    numAry[2]에는 0이

    numAry[3]에는 0이

    numAry[4]에는 3이 저장되어 있는 것이죠.

    바깥쪽 for문

    j는 초기값 4를 가지고 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

    안쪽 for문

    i는 초기값 4를 가지고 종료값 i > j 조건을 만족하지 않으므로 반복문을 수행하지 않고 빠져나옵니다.

    다시

    바깥쪽 for문

    j는 증가값 --j로 인해 1 감소되어 3이된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

    안쪽 for문

    i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[3]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[3]의 값이 변경됩니다.

    numAry[0]에는 0

    numAry[1]에는 0

    numAry[2]에는 0

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

    다시

    바깥쪽 for문

    j는 증가값 --j로 인해 1 감소되어 2가된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

    안쪽 for문

    i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[2]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다.

    numAry[0]에는 0

    numAry[1]에는 0

    numAry[2]에는 3

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[2]에 numAry[3]의 값을 누적합니다. 그러면 아래와 같이 numAry[2]의 값이 변경됩니다.

    numAry[0]에는 0

    numAry[1]에는 0

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 2이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

    다시

    바깥쪽 for문

    j는 증가값 --j로 인해 1 감소되어 1이된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

    안쪽 for문

    i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[1]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다.

    numAry[0]에는 0

    numAry[1]에는 3

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[1]에 numAry[3]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다.

    numAry[0]에는 0

    numAry[1]에는 6

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 2가된 상태에서 종료값 i > j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[1]에 numAry[2]의 값을 누적합니다. 그러면 아래와 같이 numAry[1]의 값이 변경됩니다.

    numAry[0]에는 0

    numAry[1]에는 12

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 1이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

    다시

    바깥쪽 for문

    j는 증가값 --j로 인해 1 감소되어 0이된 상태에서 종료값 j>=0 조건에 만족하므로 안쪽 for문을 수행합니다.

    안쪽 for문

    i는 초기값 4을 가지고 종료값 i >j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[0]에 numAry[4]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

    numAry[0]에는 3

    numAry[1]에는 12

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 3이된 상태에서 종료값 i > j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[0]에 numAry[3]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

    numAry[0]에는 6

    numAry[1]에는 12

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 2가된 상태에서 종료값 i > j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[0]에 numAry[2]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

    numAry[0]에는 12

    numAry[1]에는 12

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 1이된 상태에서 종료값 i > j 조건을 만족하므로

    numAry[j] += numAry[i];를 수행하여

    numAry[0]에 numAry[1]의 값을 누적합니다. 그러면 아래와 같이 numAry[0]의 값이 변경됩니다.

    numAry[0]에는 24

    numAry[1]에는 12

    numAry[2]에는 6

    numAry[3]에는 3

    numAry[4]에는 3이 저장되어 있습니다.

    안쪽 for문

    i는 증가값 --i로 인해 1 감소되어 1이된 상태에서 종료값 i > j 조건을 만족하지 않으므로 반문을 빠져나옵니다.

    다시

    바깥쪽 for문

    j는 증가값 --j로 인해 1 감소되어 -1이된 상태에서 종료값 j>=0 조건에 만족하지 않으므로 반복문을 빠져나옵니다.

    그래서 결국 최종적으로 nuymAry 배열의 값은

    24 12 6 3 3이 되므로 화면에는 한 줄씩 출력되어

    24

    12

    6

    3

    3

    이 된 것입니다

    수행 과정을 510쪽 디비겅 표와 함께 이해하시면 쉽게 이해하실 수 있습니다.

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

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