강의로 돌아가기
-

질문이 있습니다.

int[] array;
array = {1,2,3,4,5);

위의 방식으로 코드를 작성하면 실행되지 않습니다. 하지만,

int [] array ={1,2,3,4,5};

int [] array;
array= new int[]{1,2,3,4,5};

같은 방식으로 코드를 작성하면 실행이 됩니다.
뭐 때문에 이런 차이가 발생하는건가요?

작성중인 코드―ArrayExam.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class ArrayExam{
  public int[] makeArray(){
    //array가 1부터 5까지 값을 가지는 길이가 5인 int배열이 되도록 만들어 보세요.
    int [] array;

    array={1,2,3,4,5};  


    //아래는 결과 평가를 위한 코드입니다. 수정하지 마세요.
    return array;
  }

  //아래는 실행을 위한 코드입니다. 수정하지 마세요.
  public static void main(String[]args){
    ArrayExam exam = new ArrayExam();
    int [] array = exam.makeArray();
    if(array.length==5 &&
        array[0] ==1 &&
        array[1] ==2 &&
        array[2] ==3 &&
        array[3] ==4 &&
        array[4] ==5){
        System.out.println("정답입니다. [제출]을 누르세요.");
    }
    else{
        System.out.println("틀렸습니다.");
    }
  }
}
1 개의 답변
Kim TaeHune

int[] array = {1,2,3,4,5};

int [] array;
array= new int[]{1,2,3,4,5};

의 공통점은 int[] array를 선언할 때 초기화를 해줬다는 것입니다.
위쪽의 경우 선언과 동시에 array의 값을 {1,2,3,4,5}로 초기화를 해준것이고
아래쪽의 경우 array를 선언하고 그 아래쪽에 new 연산자를 이용해서 {1,2,3,4,5}로 초기화를 해줬기 때문에 오류가 없습니다.

int array[] 선언 이후에 따로 초기값을 지정하고 싶을 경우에는

int [] array;
array= new int[]{1,2,3,4,5};

int[] array = new int[5];
array = {1,2,3,4,5};

같은 식으로 new연산자를 이용해야 합니다

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