● 배열의 선언
1. 자료형[] 배열명 = {값1, 값2, ...};
- 어떤 값을 넣을 지 알 때 사용한다.
2. 자료형[] 배열명 = new 자료형[칸수];
- 어떤 값을 넣을 지는 모르나, 몇 칸 만들 지는 알 때 사용한다.
3. 자료형[] 배열명 = null;
배열명 = new 자료형[칸수];
- 어떤 값을 넣을 지도 모르고, 몇 칸 만들 지도 모를 때 사용한다.
※ new
- Heap 메모리에 할당, 초기값으로 자동 초기화
※ null
- 주소의 초기값
※ 자바에서 배열은 항상 Heap(동적 메모리)에 할당되기 때문에 메모리 상, 동적 배열만 존재한다.
● 배열의 구조
(ex) int[] arData = {7, 9, 2, 1, 4};
- arData라는 이름의 저장공간은 한 개 만들어지며, 여기에는 한 개의 값만 담을 수 있다.
- 5개의 값을 담기 위해서는 5칸이 필요하며, 이는 Heap에 할당된다.
- 5칸의 저장공간 중 첫번째 저장공간의 주소값이 arData 저장공간으로 들어가며,다음 주소에 접근하기 위해서는
+ n을 한다.
→ 예를 들어, arData + 3은 1이라는 값이 담긴 저장소의 주소값이 되며, *(arData + 3)은 해당 주소에 가서 읽어온
1이라는 값이 된다.
- JAVA에서는 직접 주소에 접근하는 연산자가 없기 때문에 위와 같은 식을 []로 치환하여 사용하며, arData[3]으로
사용한다.
- 각각의 방 번호는 index라고 부르며, 배열은 시작 주소를 가지고 있기 때문에 인덱스 번호는 항상 0부터 시작된다.
● 배열의 사용
- int[] arData = new int[4]; // arData는 저장공간이다.
- arData[0] = 10; // arData는 저장공간이다.
- arData[0] + 9; // arData는 값이다.(10 + 9 = 19)
- System.out.println(arData); // arData는 주소값이다.
- arData[2] = arData[0] + arData[1]; // 저장공간, 값, 값(arData[0] : 10, arData[1] : 0(초기값이 0이다), arData[2] : 10)
- System.out.println(arData[4]); // 결과 : 오류 발생(인덱스 범위를 벗어났다.)
실습(배열(1))
1. '3, 5, 1, 9, 7'의 값을 가진 배열을 선언한 후 출력하기
public class ArTest {
public static void main(String[] args) {
int[] arData = {3, 5, 1, 9, 7};
for (int i = 0; i < arData.length; i++) { // arData.length : 5
System.out.println(arData[i]);
}
}
}

2. 선언된 배열에 '5, 4, 3, 2, 1' 값을 넣고 출력하기
public class ArTest {
public static void main(String[] args) {
int[] arData = {3, 5, 1, 9, 7};
for (int i = 0; i < arData.length; i++) {
arData[i] = 5 - i; // 5 - 0, 5 - 1, 5 - 2, ...
System.out.println(arData[i]);
}
}
}

실습(배열(2))
1. 1~10까지 배열에 담고 출력하기
import java.util.Scanner;
public class ArTask1 {
public static void main(String[] args) {
int[] arData = new int[10]; // arData의 크기는 10이다.
for (int i = 0; i < arData.length; i++) {
arData[i] = i + 1;
System.out.println(arData[i]);
}
}
}

2. 1~100까지 배열에 담은 후 홀수만 출력하기
import java.util.Scanner;
public class ArTask1 {
public static void main(String[] args) {
int[] arData = new int[100]; // 배열에 담은 후 출력이므로 크기를 100으로 선언한다.
for (int i = 0; i < arData.length; i++) {
arData[i] = i + 1; // arData[0] = 0 + 1
if(arData[i] % 2 != 0) { // arData[i]의 값이 홀수라면
System.out.println(arData[i]);
}
}
}
}

3. 1~100까지 배열에 담은 후 짝수의 합 출력하기
import java.util.Scanner;
public class ArTask1 {
public static void main(String[] args) {
int[] arData = new int[100];
int total = 0; // 짝수의 합을 담을 변수
for (int i = 0; i < arData.length; i++) {
arData[i] = i + 1;
if(arData[i] % 2 == 0) { // arData[i]의 값이 짝수라면
total += arData[i]; // total = total + arData[i]
}
}
System.out.println(total);
}
}

'ETC > 복습' 카테고리의 다른 글
[복습_JAVA] 16 (0) | 2022.08.25 |
---|---|
[복습_JAVA] 15 (0) | 2022.08.22 |
[복습_JAVA] 13 (0) | 2022.08.20 |
[복습_JAVA] 12 (0) | 2022.08.17 |
[복습_JAVA] 11 (0) | 2022.08.16 |