강의로 돌아가기
-

이것도 맞지 않나요?

for 구문에서 i가 100 이하를 가정하면
array[i] = 에서 i+1이 아니라 i 로 해도 답이 되지 않나요?

작성중인 코드―ArrayExam.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class ArrayExam {
    public int[] fill100() {
        int[] array = new int[100];
    for (int i = 0; i<=array.length; i++) {
      array[i] = i
    }
        // 아래는 결과 평가를 위한 코드입니다. 수정하지 마세요.
        return array;
    }

    // 아래는 실행을 위한 코드입니다. 수정하지 마세요.
    public static void main(String[] args) {
        ArrayExam exam = new ArrayExam();
        int[] arr2 = exam.fill100();
        for (int i = 0; i < 100; i++) {
            if (arr2[i] != i + 1) {
                System.out.println("array[" + i + "]의 값이 틀립니다.");
            }
        }
    }
}
3 개의 답변
Demi

일단 array[i] = i에 세미콜론이 빠져있어서 컴파일 에러가 날거구요.
또 for문의 i<=array.length에선 index error가 날겁니다. 배열의 길이가 100인 경우, arr[99]까지만 접근할 수 있습니다.

charles

<=를 사용하려면 i <= array.length-1 로 사용해야 되죠?
연산자와 lenth 를 잘 결합해서 사용해야 겠네요.

-

문제는 1~100까지 값을 넣어 주세요 라고 되어있어요!
일단 배열은 생성시, 0부터 생성한 값까지 메모리가 생기는건 아시죠?

실제로 강의내용에서는 iarray[100]이라는 배열에 넣어준 값은
iarray[0] = 1
iarray[1] = 2
iarray[2] = 3
iarray[3] = 4 ....
for문의 조건값에 의하여 마지막 배열에는 iarray[100] = 101 이 되는것이죠.
그럼 문제 잘 풀어보시길 바랍니다 ~^

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.