반응형

배열

성격과 크기가 일치하는 여러개의 기억 장소에 대해 대표명을 주고 첨자로 각 기억장소를 구분

반복처리에 효과적이다 !

 

배열 선언

 

방법1) 데이터 타입[] 배열 변수명

방법2) 데이터 타입 배열 변수명[];

ex) String[] name;

ex) int num[];

 

배열 생성

 

배열은 자바에서 객체 취급한다.

new 연산자에 의해 객체를 생성하고 할당받을 때는 배열의 크기를 정해준다.

데이터는 배열의 크기만큼 사용 가능하고

배열의 크기는 지정 이후 변경이 어렵습니다.

 

ex) name = new String[5];

ex) num = new int[10];

 

소스를 통해 알아보겠습니다.

 

변수 ar에 크기 5에 할당하는 배열을 주었습니다.

 

알아두면 유용한 문법 ! 

배열변수명.length : 배열의 크기를 알 수 있습니다 !
ar[0] 의 값은 10
ar[1] 의 값은 20 으로 할당해주었습니다.
ar[4] 의 값은 ar[0] 과 ar[1]의 데이터 값을 더한 값이므로 40
ar[3] 은 설정해준 값이 없으므로 0을 출력합니다.

 

1
2
3
4
5
6
int ar[] = new int[5]; // 배열의 크기를 5로 할당
        System.out.println("ar의 크기 : " + ar.length);
        ar[0= 10; ar[1= 20;
        ar[4= ar[0+ ar[1];
        System.out.println("ar[4]의 크기 : " + ar[4]);  // ar[0]의 10과 ar[1]의 20을 더하여 30 출력
        System.out.println("ar[3]의 크기 : "+ar[3]); // ar[3]은 정해준 데이터 값이 없어 0 출력
1
2
3
ar의 크기 : 5
ar[4]의 크기 : 30
ar[3]의 크기 : 0

다차원 배열

 

int num[][] = new int[][]; // 2차원 배열 - [행][열]

 

차원이 늘어갈수록 for는 다중으로 입력해주어야한다.

ex) 2차원 배열은 for문 2개

 

su 배열에 3행 4열의 크기를 주었습니다.

 

num은 10으로 for문을 통해 해당하는 배열의 행과열에 num 값을 1씩 증가시켜서 저장했습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
        int su[][] = new int[3][4];
 
        int num = 10;
 
 
        for(int i=0; i <su.length; i++) {
            for(int j=0; j<su[i].length; j++) {
 
            su[i][j] = num++;
            System.out.print(su[i][j] + " ");
            }
            System.out.println();
        }
 

출력 결과

1
2
3
4
10 11 12 13 
14 15 16 17 
18 19 20 21 
 

가변배열

 

예를 들어 설명하겠습니다.

 

int[][] scores = new int[2][] 으로 열은 따로 설정되어있지 않습니다.

이같은 열을

2,3번째 줄과 같이 유동적으로 설정이 가능합니다. 이것을 가변배열이라고합니다.

1
2
3
4
int[][] scores = new int[2][];
        scores[0= new int[2];
        scores[1= new int[3];
        System.out.println(scores.length + " " + scores[0].length + " " + scores[1].length);

 

4번째 줄을 출력하면 다음과 같은 결과값이 나옵니다.

 

1
2 2 3

 

해당 관련 연습문제

2020/03/03 - [JAVA/JAVA 프로그래밍 응용] - 배열을 이용한키보드로 5개의 점수를 입력받아 출력하기

반응형

'JAVA > JAVA' 카테고리의 다른 글

7 - 메소드  (0) 2020.03.04
6 - 클래스 ( class )  (0) 2020.03.03
4 - 조건문 if & switch  (0) 2020.03.03
3 - 반복문 for & while  (0) 2020.03.03
2 - 연산자  (0) 2020.03.03

+ Recent posts