ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바기초] 배열 정리노트
    º Language º/Java 2023. 3. 17. 20:54

    만약 100명의 점수를 입력받아 출력하는 프로그램을 작성해야 한다면 다음과 같이 변수 100개를 만들어야 합니다.

    int score1, score2,score3, .... score100;

    이것은 상상만 해도 끔찍한 일입니다. 일일이 언제 변수를 100개를 만드냐...

     

     

    * 배열이란? 

     

    이와 같이 자료형이 같은 변수가 많~이 필요할때에 일일이 변수이름을 정하지 않고 대표하는 이름을 정해주고 몇개가 필요한지 크기를 정해주어 한꺼번에 필요한 만큼 변수를 선언할 수 있어요.

    이것을 "배열"이라고 합니다.

    - 배열 : 자료형이 같은 기억장소의 모임
     
     
     * 배열을 사용하는 방법?
     
    int []a;		//배열의 선언
    a = new int[100];	//배열의 생성

     

    예를 들어보죠. 한번에 배열을 선언하면서 정수형으로 변수 100개를 생성하여 만들어보겠습니다.

    int []a = new int[100];

    > 위 문장을 통해 정수형 변수 100개가 만들어집니다. 그 100개의 변수를 대표하는 이름이  'a' 입니다.

     

    - 배열을 통해 만들어진 변수들을 '배열의 요소'라고 합니다.

    - '배열의 요소'에 접근하기 위해서는 배열의 이름과 '인덱스'를 사용합니다.

    - 자바에서 인덱스는 0번째 부터 사용합니다.

     

    a[0] = 1;

    > 따라서, 첫번 째 요소에 1을 저장하기 위해서 위의 코드처럼  a[0]의 인덱스부터 출발합니다.

    만약 배열의 크기가 5일때, 사용할 수 있는 배열의 요소는 a[0], a[1], a[2], a[3], a[4] 입니다.

    배열의 크기가 5일때 a[5] 요소는 없다는 것입니다.

    배열의 크기가 n일때에 사용할 수 있는 인덱스는 0 ~ n-1 까지 입니다.

    [ ]   [ ]  [ ]  [ ]   [ ]
    a[0] a[1] a[2] a[3]  a[4]

     

    연습)

    1)30개의 원소를 가지는 int형 배열로 studentNumbers 변수로 참조된다.
    int []studentNumbers = new int[30];
    
    2) 100개의 원소를 가지는 double형 배열로 profits 변수로 참조된다.
    double []profits = new double[100];
    
    3)2000개의 원소를 가지는 char형의 배열로 propverbs 변수로 참조된다.
    char []propverbs = new char[2000];
    
    4) 1.2, 3.3, 6.7 과 같은 값을 가지는 double배열을 생성하고 초기화한다.
    double []data = {1.2, 3.3, 6.7};

     

    연습)

    int[] employee = new int[5]; 와 같은 배열 선언이 있다.

    1) 유효한 인덱스 범위는?

    - 0,1,2,3,4

    2) 만약 employee[5]와 같이 원소를 접근하였다면 어떤 일이 발생하는가?

    - 컴파일은 되지만 실행오류가 발생한다.

     

    연습)

    사용자에게 배열의 크기를 물어보고 그 크기대로 배열을 생성하는 문장을 작성하라.

    double []readings;
    
    int n;
    
    System.out.println("배열의 크기는?");
    n = scan.nextInt();
    readings = new double[n];

     

     

    * 배열의 초기값

     

     - 배열은 자동으로 초기값을 갖습니다.

    int	0
    double	0.0
    boolean	false
    String	null

     

     

     

     

    * 2차원 배열

     

     - 2차원의 배열은 1차원 배열의 묶음이라고 생각하면 됩니다.

     

    int []a = new int[4];
    	---> 1차원 배열
    	---> 정수형 변수가 4칸 있어요
             
    	 0 1 2 3
    	[][][][]

    > 1차원 배열의 예시입니다. 이를 2차원으로 바꾼다면 아래와 같습니다.

     

      		   행 열
    int [][]a = new int[3][4]
    	---> 정수형 변수 4칸 짜리가 3줄 있어요
        
                열
            0  1  2  3
          0[ ][ ][ ][ ]	
       행 1[ ][ ][7][ ]
          2[ ][ ][ ][ ]
    
    	   a[1][2] = 7;

    > 위와 같이 앞에있는 배열은 행을 뜻하고 뒤는 열을 뜻합니다. 

     

     

     

     

    * 3차원 배열

     

     -3차원의 배열은 2차원 배열의 묶음이라고 생각하면 됩니다.

     
    int [][][]a = new int[2][3][4];
    
    	[][][][]
    	[][][][]
    	[][][][]
    
    	[][][][]
    	[][][][]
    	[][][][]

    > 배열을 [][][] 세개 씩 써주면 됩니다. 순서대로 면, 행, 열 입니다. 2차원 행열을 한개 더 만드는 꼴입니다.

     

     

    * 행마다 열의 크기가 다를 수 있을까?

     

    - 자바에서는 가능합니다. 각 행마다 열의 크기가 달라질 수 있습니다. 

    int [][]a = new int[3][];
    a[0] = new int[2];
    a[1] = new int[5];
    a[2] = new int[3];
    
    [][]
    [][][][][]
    [][][]

    > 위의 코드와 같이 행에 3의 숫자를 넣어두고 열은 비워둡니다.

    이렇게 각 행마다 열의 값을 따로 생성해주면 각기 다른 크기의 행열이 만들어 질 수 있습니다.

     

Coder yein