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

이중for문에서 처음시작하는게 numAry[4]+=numAry[4]인데 왜 j와 i가 4인경우는 구하지 않는건가요?

j

i

numAry[j]

numAry[i]

배열

4

4

3

3

0 0 0 0 6

3

4

0

6

0 0 0 6 6

3

6

6

0 0 0 12 6

2

4

0

6

0 0 6 12 6

3

6

12

0 0 18 12 6

2

18

18

0 0 36 12 6

1

4

0

6

0 6 36 12 6

3

6

12

0 18 36 12 6

2

18

36

0 54 36 12 6

1

54

54

0 108 36 12 6

0

4

0

6

6 108 36 12 6

3

12

12

18 108 36 12 6

2

18

36

54 108 36 12 6

1

54

108

162 108 36 12 6

0

162

162

324 108 36 12 6

제가 생각할때는 이런식으로 돼야 맞는것같은데 뭐가 잘못된건지 알수 있을까요?

답변
2018-03-07 09:34:30

안녕하세요.

첫 번째 for문에서

j는 초기값 4를 가지고 종료 기준값인 j>=0 조건을 확인합니다.

j가 4이므로 조건을 만족하여 for문을 진입합니다.

두 번째 for문에서

i는 초기값 4를 가지고 종료 기준값인 i>j 조건을 확인합니다.

i와 j가 모두 4이므로 i>j 조건을 만족하지 않아

반복문을 진입하지 못하고 빠져나와 위쪽 반복문을 다시 수행합니다.

j는 1 감소하여 3이 된 상태에서 j>=0 조건을 만족하므로 for문을 진입합니다.

i는 초기값 4를 가지고 i>j 조건을 확인합니다.

i는 4이고 j는 3이므로 조건을 만족하여 for문을 진입합니다.

numAry[j] += numAry[i] 를 수행합니다.

numAry[3] += numAry[4]를 수행하여 numAry[3]에 numAry[4]의 값 3을 누적합니다.

위와 같이 진행되는데, for문에서 초기값 지정 후 바로 종료 기준값을 비교하는 과정으로 수행되므로

j가 4이고 i가 4일 때 안쪽 반복이 수행되지 않습니다.

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

  • *
    2018-03-07 09:34:30

    안녕하세요.

    첫 번째 for문에서

    j는 초기값 4를 가지고 종료 기준값인 j>=0 조건을 확인합니다.

    j가 4이므로 조건을 만족하여 for문을 진입합니다.

    두 번째 for문에서

    i는 초기값 4를 가지고 종료 기준값인 i>j 조건을 확인합니다.

    i와 j가 모두 4이므로 i>j 조건을 만족하지 않아

    반복문을 진입하지 못하고 빠져나와 위쪽 반복문을 다시 수행합니다.

    j는 1 감소하여 3이 된 상태에서 j>=0 조건을 만족하므로 for문을 진입합니다.

    i는 초기값 4를 가지고 i>j 조건을 확인합니다.

    i는 4이고 j는 3이므로 조건을 만족하여 for문을 진입합니다.

    numAry[j] += numAry[i] 를 수행합니다.

    numAry[3] += numAry[4]를 수행하여 numAry[3]에 numAry[4]의 값 3을 누적합니다.

    위와 같이 진행되는데, for문에서 초기값 지정 후 바로 종료 기준값을 비교하는 과정으로 수행되므로

    j가 4이고 i가 4일 때 안쪽 반복이 수행되지 않습니다.

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

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