-
[자바기초] 배열 정리노트º 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의 숫자를 넣어두고 열은 비워둡니다.
이렇게 각 행마다 열의 값을 따로 생성해주면 각기 다른 크기의 행열이 만들어 질 수 있습니다.
'º Language º > Java' 카테고리의 다른 글
[자바기초] 객체지향 프로그래밍 특징(상속성) 정리노트 (0) 2023.03.23 [자바기초] 객체지향 프로그래밍 정의 및 특징(은닉성) 정리노트 (0) 2023.03.20 [자바기초] 제어문(반복문) 정리노트 (0) 2023.03.15 [자바기초] 오류의 종류와 제어문(선택문) 정리노트 (0) 2023.03.13 [자바기초] 연산자의 종류와 활용 방법 정리노트 (2) 2023.03.11