배열 Array
배열의 정의
변수 : 하나의 공간에 하나만 넣을 수 있습니다.
배열 : 하나의 공간에 여러개의 값을 담을 수 있습니다. 단, 같은 자료형만 담을 수 있습니다.
배열의 각 인덱스 위치에 값을 담을 수 있습니다.(방이 나뉘어져있습니다.)
각 방의 크기가 같습니다.(자료형 크기) ex) int [] : 각 인덱스방의 크기가 4byte
배열의 선언
자료형[] 배열명;
ex)
int[] arr1;
double[] arr1;
배열의 할당
자료형[] 배열명= new 자료형[배열의 크기]; => 배열의 크기 :몇 칸짜리 배열을 만들건지 설정합니다.
ex)
int[] arr1; => 배열의 선언
arr1 = new int [5]; => 선언한 배열에 할당하기 /배열의 크기 : 5
int [] arr2 = new int[5]; => 배열의 선언과 동시에 할당을 같이하기
배열의 각 인덱스에 값을 가지고 오는 방법
배열의 개념을 한번에 쉽게 설명하면 다음위와 같습니다.
배열을 for문을 이용해서 한번에 출력을 할 수 있습니다.
https://kwanghyung.tistory.com/entry/For%EB%AC%B8
For문
For문 괄호안의 반복을 지정하는 부분이 있다. 초기식, 조건식, 증감식 세가지로 이루어져 있습니다. for(초기식; 조건식; 증감식) { 실행될 코드 } -초기식 : 반복문이 시작될때 "초기에 단 한번만
kwanghyung.tistory.com
혹시 for문에 대해서 생각이 안나면 보고 오셔도 좋습니다.
위의 arr1배열문을 하나씩 써서 출력하는게 아닌 for문과 출력문으로 아래와 같이 출력을 할 수 있습니다.
for (int i=0; i<arr1.length; i++) {
System.out.println(arr1[i]);
}
여기서 중요한것은 배열의 길이입니다. arr1.length는 배열의 크기를 말하고 index로는 그 전까지 출력되므로 위의 식 처럼 할 수 있습니다. ex) arr1[5]가 이 배열의 마지막 배열 5번째 인덱스이지만 6개의 방이 있습니다. 그러므로 arr1.length-1이 아닌 arr1.length로 사용할 수 있습니다.
배열을 다음과 같이 선언하고 할당합니다.
그 출력문으로 아직 인덱스에 값을 넣지 않고 출력을 하면 어떻게 될까요? 아무 값이 들어 있지 않기때문에 오류가 날것 같지만 출력을 하면 다음과 같습니다.
String은 null을 int와 double은 각각 0을 출력 했습니다. 그 이유는 자바에 JVM(JAVA VIRTUAL MACHINE)이 기본값을 넣어줍니다. 그러면 왜 넣냐고 하면 stack heap 영역 즉 배열도 주소값을 이용한 참조형태인데 heap영역에서 만들어준 인덱스에 빈공간이 있으면 안되기 때문입니다.
또 배열형태 중 new를 스킵하고 바로 넣어주는 방법이 있습니다.
그러면 아이유는 sArr2[0]="아이유"....부터 시작해 sArr2[8]="설인아"이라는 배열이 만들어집니다.
그럼 출력을 하려면 for문을 돌려보겠습니다.
이렇게 출력이 됩니다. 이번시간에는 배열에 대해서 알아보았습니다. 다음시간에는 배열 연습할 문제들과 배열 복사에 대해서 얘기해보겠습니다.