배열
배열이란 같은 유형의 값을 하나의 묶어서 저장하는 것으로 많은 양의 값을 다룰 때 유용합니다. 배열 내부의 요소들은 연속적입니다.
선언과 생성
배열의 경우 처음 선언시 일반적인 변수 선언과 비슷하지만 변수 타입 오른쪽에 대괄호[]
를 붙여줍니다. 값을 저장할 공간은 배열 선언시 만들어지는 것이 아니라 배열 생성시 만들어집니다.
초기화 및 확인
변수 초기화와 마찬가지로, 배열에 처음으로 값을 저장하는 것입니다. 배열 내의 각각의 값을 요소라고 하고 각 요소의 고유 번호가 있는데 이를 인덱스라고 합니다.
초기화에 들어가기 앞서 변수 유형별 배열 선언을 살펴봅시다.
배열은 선언만으로도 초기화가 이루어지는 것을 볼 수 있습니다.
다음은 기존 방식과 배열을 이용한 방식을 비교해보겠습니다.
변수 선언과 생성을 값마다 하지 않고 한번에 할 수 있어서 코드가 간결해졌습니다. 배열에서 반복문 사용할 수 있는 이유는 요소 번호가 0부터 1씩 증가하는 값을 가지기 때문입니다.
(+) python에서는 변수명을 지정할 때 globals()와 for문을 통해 각각 다른 변수명을 지정할 수 있지만 자바에서는 되지 않습니다.
다음으로는 5칸의 배열에 100점부터 60점까지 입력해봅시다.
다음으로 for each문이 있습니다. 배열이 가지고 있는 요소를 하나하나씩 받아오는 반복문입니다. 조건식, 증감식 등을 쓰지 않아도 되는 편리함이 장점입니다.
배열 안의 모든 요소를 확인할 때 for문을 사용하는 이유는 배열은 참조 자료형이기 때문에 System.out.println();를 이용하여 출력하면 값이 출력되는 것이 아니라 참조 주소값을 출력하기 때문입니다. 해당 내용은 본 블로그 자바(1)에서 볼 수 있습니다.
물론 아래와 같이 다른 클래스를 이용해 문자형태로 출력하면 배열을 볼 수 있습니다.
지금까지 배운 내용들을 토대로 배열을 활용해봅시다. 아래는 스캐너, 배열, 조건/반복문을 이용하여 주사위를 뽑는 횟수를 입력하고 각각의 눈이 몇 번씩 뽑혔는지 알려주는 코드입니다.
다차원 배열의 선언과 생성
기존에 만든 1차원 배열이 아닌 다차원 배열이 있는데 이를 생성하기 위해서는 원하는 차원 수 만큼 대괄호[]
를 붙여줍니다. 배열 안에 있는 배열들끼리는 서로 길이가 같을 필요는 없습니다.
(+) args
메인 메소드에서 보이던 args는 cmd창에서 java로 해당 클래스를 실행할 때 추가로 입력받는 값입니다.
java 파일명 /? 입력시 “도움말입니다”를 출력하고, java 파일명 + 1 2 입력시 3이 출력됩니다.