배열이란?
- 배열은 자료들을 모아놓는 자료구조의 일종으로 동일한 자료형을 순차적으로 관리하는 기능을 합니다.
- 배열을 선언하기 위해선 '자료형[] 변수명 = new 자료형[인덱스 크기]'으로 사용하고 예를 들어int[] arr= new int[10];와 같이 선언합니다.
- 배열의 메모리 구조 아래 그림과 같이 자료형 크기의 맞는 메모리가 1열로 선언한 갯수만큼 생성됩니다. 그래서 배열은 물리적인 위치와 논리적인 위치가 동일하다고 합니다.
- 배열은 0번 부터 시작합니다. int[10]이면 위치가 1~10가 아닌 0~9입니다. 정리하면 int[] arr = new int[n]라면 인덱스 번호는 0~n-1까지 입니다.
예제
int[] arr1 = new int[] {1,2,3};
int[] arr2 = {1,2,3};
int[] arr3;
arr2 = new int[]{1,2,3};
int[] arr4 = new int[3];
arr4[0] = 1;
arr4[1] = 2;
arr4[2] = 3;
- 위와 같은 방식으로 배열을 입력할 수 있습니다. 배열은 자료형 뒤에 대괄호[]가 붙고 값을 중괄호{}안에 콤마','로 구분하여 넣습니다.
public static void main(String[] args) {
//1번
int[] arr = new int[10];
//2번
for(int i = 0, num =1; i <arr.length ; i++,num++) {
arr[i] = num;
}
//3번
int sum = 0;
for(int i = 0; i<arr.length ; i++) {
sum += arr[i];
}
System.out.println(sum); //55
}
- 배열을 통하여서 1~10까지 합을 구하는 예제입니다.
- 1번 : Int arr 배열을 선언하고 10개의 인덱스를 입력합니다.
- 2번 : for문을 통해 배열 arr에 0~9자리에 1~10까지 대입하는 반복문을 작성합니다
- 3번 : sum 변수를 만들고 arr배열에 대입한 1~10을 더해주는 반복문을 작성하고 마지막에 출력문을 통해 sum을 출력합니다.
double[] dArr = new double[5];
dArr[0] = 1.1;
dArr[1] = 2.1;
dArr[2] = 3.1;
double mtotal = 1;
for(int i = 0; i<dArr.length; i++) {
mtotal *= dArr[i];
}
System.out.println(mtotal);//0
- 다음예제는 유의사항으로 다음과 같이 5개의 배열 중 3개만 입력한 상황에서 length만큼 반복해서 곱셈을 하였더니 결과값이 0.0이 나왔습니다. 이는 값을 입력하지 않은 dArr[3],dArr[4]가 초기값인 0.0로 잡혀있기 때문입니다.
- 이 문제를 해결하기 위해 아래와 같이 count 변수를 선언하고 배열에 변수를 대입할 때 마다 conut++을 해주고 조건에 dArr.length대신 count를 넣어주면 결과값을 얻을 수 있습니다.
double[] dArr = new double[5];
int count = 0;
dArr[0] = 1.1; count++;
dArr[1] = 2.1; count++;
dArr[2] = 3.1; count++;
double mtotal = 1;
for(int i = 0; i<count; i++) {
mtotal *= dArr[i];
}
System.out.println(mtotal);//7.161
Q. 배열문제
- 문자 배열을 생성하고 출력해 보세요.
- 대문자를 A-Z까지 배열에 저장하고 이를 다시 출력하는 프로그램을 만들어 보세요.
public static void main(String[] args) {
//1번
char[] alpahbets = new char[26];
char ch = 'A';
//2번
for(int i = 0; i < alpahbets.length ; i++) {
alpahbets[i] += ch++;
}
//3번
for(int i = 0; i < alpahbets.length; i++) {
System.out.println(alpahbets[i]+","+(int)alpahbets[i]);
}
}
- 1번 : char alpahbets 배열을 먼저 만들어주고 시작 값인 A를 ch 변수로 선언합니다.
- 2번 : for문을 만들고 length까지 반복되게 범위를 지정하고 alpabets배열에 A부터++해서 더합니다.
- 3번 : for문을 만들고 출력문안에 alpabets[i] 와 (int)alpabets[i]를 출력하게합니다. 그러면 A,65 B,66 .....Z,90까지 출력이 됩니다.
'Java' 카테고리의 다른 글
[Java] 배열과 ArrayList - 다차원 배열 (0) | 2020.07.15 |
---|---|
[Java] 배열과 ArrayList - 객체 배열 (0) | 2020.07.13 |
[Java] 클래스와 객체 - 예제3 (0) | 2020.07.13 |
[Java] 클래스와 객체 - static 응용 - singleton Pattern (0) | 2020.07.13 |
[Java] 클래스와 객체 - static 변수, 메서드 (0) | 2020.07.13 |