* 배열(Array)?
- 하나의 이름으로 동일한 자료형의 데이터를 여러 개 연속적으로 저장할 수 있는 메모리 공간을 할당 받는 것을 말함
- 변수는 하나의 값만을 저장하지만, 배열은 여러 개의 값을 저장할 수 있음.
- 같은 자료형의 데이터들이 순차적으로 저장됨.
- 배열은 선언과 동시에 저장할 수 있는 데이터 타입이 결정이 됨.
만약 다른 타입의 데이터를 저장하려면 타입 불일치 컴파일오류가 발생함.
- 배열의 방의 이름은 0이라는 인덱스부터 시작함.
- 배열의 단점 : 배열은 한 번 크기가 정해지면 크기를 늘리거나 줄일 수 없음.
[배열 사용하는 방법]
- 1단계 : 배열 선언(자료형[] 배열명, 자료형 배열명[])
- 2단계 : 배열 메모리 생성(메모리 할당 : 배열명 = new 자료형[배열의 크기])
- 3단계 : 배열 초기화(할당된 메모리 영역에 데이터를 저장)
- 4단계 : 배열을 이용(데이터 처리 = 연산, 출력 등)
[배열의 생성 방법 - 2가지]
1. new 키워드를 사용하여 배열 생성
2. 배열의 초기값을 이용하여 배열 생성
* length 속성
- 배열의 크기(길이)를 알려주는 키워드.
- 배열의 크기(길이)를 정수값으로 알려줌.
형식) 배열명.length
예) int size = arr.length
기본예제)
public static void main(String[] args) {
// 1단계 : 배열 선언(자료형[] 배열명, 자료형 배열명[])
//int[] score;
// 2단계 : 배열 메모리 생성(메모리 할당 : 배열명 = new 자료형[배열의 크기])
//score = new int[5];
// 1단계 + 2단계 : 배열 선언 및 배열 메모리 생성
int[] score = new int[5];
// 3단계 : 배열 초기화(할당된 메모리 영역에 데이터를 저장)
score[0] = 10;
score[1] = 20;
score[2] = 30;
score[3] = 40;
score[4] = 50;
// 4단계 : 배열을 이용(데이터 처리 => 연산, 출력 등)
score[2] += 100;
score[3] *= 3;
// score 배열에 들어가 있는 데이터들을 출력해보자.
System.out.println("score[0] >>> " + score[0]);
System.out.println("score[1] >>> " + score[1]);
System.out.println("score[2] >>> " + score[2]);
System.out.println("score[3] >>> " + score[3]);
System.out.println("score[4] >>> " + score[4]);
// 반복문을 이용하여 출력해보자.
for(int i=0;i<5;i++) {
System.out.println("score["+i+"] >>> " +score[i]);
}
}
예제1) 가고 싶은 5개 나라를 키보드로 입력받아 배열에 저장해보자
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1단계 : 5개 나라가 저장될 배열 선언
String[] nation = new String[5];
for(int i=0; i<5; i++) {
System.out.print((i+1)+"번째 나라 입력>>> ");
nation[i] = sc.next();
}
// 배열에 저장된 5개 나라를 출력해보자.
for(int i=0; i<5; i++) {
System.out.println((i+1) + "번째 나라 >>> " + nation[i]);
}
}
예제2) 키보드로 배열의 크기를 입력 받아 정수를 저장하자.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("배열의 크기를 입력하세요.");
//int size = sc.nextInt();
int[] arr = new int[sc.nextInt()];
for(int i=0; i<arr.length; i++) {
System.out.print((i+1)+"번째 정수 입력 >>> ");
arr[i] = sc.nextInt();
}
System.out.println();
for(int i=0; i<arr.length; i++) {
System.out.println("arr["+i+"] >>> " + arr[i]);
}
sc.close();
}
예제3) 배열의 크기를 입력 받아 지정하고, 정수형 타입의 데이터를 입력 받아 문자열로 변환한 후 해당 문자열을 검색해보자.
public class Ex07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("문자열 배열의 크기 : ");
String[] str = new String[sc.nextInt()];
for(int i=0; i<str.length; i++) {
System.out.print((i+1)+"번째 문자열 입력 >>> ");
str[i] = sc.next();
}
System.out.println();
// 문자열 배열에 저장된 하나의 문자열을 검색
System.out.print("검색할 문자열 입력 : ");
String search = sc.next();
for(int i=0; i<str.length; i++) {
if(search.equals(str[i])) {
System.out.println("찾은 문자열 >>> " + str[i]);
System.out.println("찾은 인덱스 >>> str["+i+"]");
}
}
sc.close();
}
예제4) 배열의 크기를 키보드로 입력 받고 입력 받은 배열의 크기만큼 키보드로 정수를 입력 받아서 최대값과 최소값을 화면에 출력
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("배열의 크기 입력 : ");
int[] arr = new int[sc.nextInt()];
// 최대값 변수, 최소값(99->두자리수 제한) 변수 선언
int max = 0, min = 99;
// 배열에 키보드를 이용하여 임의의 정수를 입력을 받자.
for(int i=0; i<arr.length; i++) {
System.out.print((i+1)+"번째 정수 입력 >>>");
arr[i] = sc.nextInt();
// 최대값을 구해 보자.
if(arr[i] > max) {
max = arr[i];
}
// 최소값을 구해 보자.
if(arr[i] < min) {
min = arr[i];
}
}
System.out.println("최대값 >>> " + max);
System.out.println("최소값 >>> " + min);
sc.close();
}
'Back > JAVA' 카테고리의 다른 글
[문제] 배열을 이용하여 정수를 내림차순으로 정렬하기 (0) | 2021.03.04 |
---|---|
배열 공유 (0) | 2021.03.04 |
[문제] 카페 음료 계산 프로그램 (0) | 2021.03.03 |
[문제] 알파벳을 Z~A순서로 역순 출력 (0) | 2021.03.03 |
[문제] 다양한 모양으로 별찍기를 해보자. (세모, 하트, 보석) (0) | 2021.03.03 |