Java
[Java] 배열(Array)
Dongi
2022. 8. 1. 21:54
안녕하세요. 오늘은 배열에 대해 알아봅시다.
배열(Array)
자바에서 배열은 기본 타입(primitive type)이 아닌 참조 타입(reference type)입니다. 참조 타입은 좌표를 찍어주는(가리키는) 역할을 합니다. 예를 들어 제가 벤츠 자동차 키를 가지고 있다고 칩시다. 여러분은 저의 벤츠 자동차 키를 보고 제가 벤츠를 몰고 다닌다고 예상을 할 수 있지 실제로 벤츠가 있는지 알지는 못합니다 고로 저의 벤츠 자동차 키는 '저 사람이 벤츠를 타고 다닐 것이다.'라고 참조하고 있는 것입니다. 다른 예로 내비게이션 맵상에 위치는 실제 존재하지는 않습니다. 그 위치를 참조하고 있을 뿐이죠.
배열은 같은 타입 변수들의 집합입니다.
변수의 값들을 한꺼번에 선언하고 반복문을 통해 한꺼번에 처리할 수 있습니다. (일괄 처리)
배열의 인덱스(index): 배열의 개수가 n개라면 인덱스는 0 ~ n-1번까지 존재합니다. 자바스크립트의 배열과 파이썬의 리스트와 같은 원리입니다. 이곳을 클릭하여 이전 포스팅에 자세한 그림이 있으니 참고하시길 바랍니다.
정수형(Integer) 배열의 기본값(default value)로는 0이 들어있습니다.
선언 방법 1, 2
public class Array {
public static void main(String[] args) {
// 첫 번째 방법
int[] a; // 참조변수 선언, 정수형의 1차원 배열을 참조하는 참조변수 a선언
// int a[];로도 참조변수 선언이 가능하지만 위 방법을 권장함. 이유는 a가 정수형 배열을 참조하기 때문
a = new int[5]; // 참조변수 a가 정수형 배열의 본체를 참조함, 배열의 개수는 5 (index 0~4)
}
}
public class Array {
public static void main(String[] args) {
// 두 번째 방법
int[] a = new int[5]; // 참조변수 선언과 동시에 배열의 본체를 참조함
}
}
값 설정 1
public class Array {
public static void main(String[] args) {
// 두 번째 방법
int[] a = new int[5]; // 참조변수 선언과 동시에 배열의 본체를 참조함
// 값 설정
// a[0]은 값을 두지 않았음 -> 출력값이 뭐가 나오는지 봅시다.
a[1] = 10;
a[2] = 15;
a[3] = 20;
a[4] = 40;
// 반복문으로 배열의 값 출력
for(int i=0; i<a.length; i++) { // 배열의 인덱스 번호가 0부터 시작하기 때문에 i에 0을 대입
System.out.println("a[" + i + "] = " + a[i]);
}
}
}
/* 출력값
a[0] = 0 -> 기본값(default value)인 0이 출력됨
a[1] = 10
a[2] = 15
a[3] = 20
a[4] = 40
*/
선언 방법 3, 4
public class Array {
public static void main(String[] args) {
/* 세 번째 방법 - 배열을 선언하고 바로 초기화
배열을 선언하고 초기화할 때는 new int[] 생략가능*/
int[] a = {1, 2, 3, 4, 5};
// 또는 아래 방법
int[] a = new int[]{1, 2, 3, 4, 5};
}
}
public class Array {
public static void main(String[] args) {
// 네 번째 방법 - 배열의 선언과 초기화 분리
int[] a;
a = new int[]{1, 2, 3, 4, 5};
// 반복문을 통한 배열의 값 출력
for(int i=0; i<a.length; i++) {
System.out.println("a["+ i + "] = " +a[i]);
}
}
}
/* 출력값
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
*/
간단한 예제
손오반 학생수를 입력하고 입력한 학생수 크기의 scores라는 배열을 생성하고 각 학생의 점수를 입력하여 그 점수를 출력하고 손오반의 총점과 평균을 구하시오.
import java.util.Scanner;
public class ArrayAlone02 {
public static void main(String[] args) {
// 스캐너 객체
Scanner sc = new Scanner(System.in);
// 학생수 입력 받기
System.out.print("학생수 입력: ");
int n = sc.nextInt();
// 배열 선언
int[] scores = new int[n]; // 인덱스는 0부터 n-1까지
// 각각의 학생 점수 입력
for(int i=0; i<scores.length; i++) {
System.out.print(i+1 + "번 학생 점수: ");
scores[i] = sc.nextInt();
}
// 학생 점수 출력 및 합계, 평균 계산
int sum = 0; // 합계
double ave = 0.0; // 평균
System.out.println("*** 손오반 학생 점수 출력 ***");
for(int i=0; i<scores.length; i++) {
System.out.println(i+1 + "번의 점수: " + scores[i]);
// 반복문 돌리면서 합계 계산
sum += scores[i];
}
// 평균 계산
ave = (double)sum / n;
// 총점, 평균 출력
System.out.printf("손오반\n 총점: %d\n 평균: %.2f", sum, ave);
// 스캐너 닫기
sc.close();
}
}
본 내용은 강남 이젠아카데미컴퓨터학원에서 배운 내용을 복습하는 과정입니다.
링크 : https://gn.ezenac.co.kr/