Day07. 반복문 Quiz, 배열 도입
배열
하나의 변수에 여러 개의 같은 자료형 값을 담을 수 있게 만든 것
변수에 큰 단점이 있습니다
???
일단,
1. 변수는 변수 하나에 값 한 개 밖에 저장을 못한다.
2. 변수는 반복문을 사용할 수가 없어. 배열은 가능하다.
변수를 출력하려면, 모든 변수 전부 print문을 작성해줘야 하는데,
배열은 한 번만 선언해주면 알아서 주르륵 나옵니다.
그럼 배열의 인덱스에 들어있는 값 출력은 어떻게 해야 하는가?
=> 그냥 배열이름 뒤에 대괄호 쓰고 인덱스 번호 넣으면 알아서 출력됨.
ex)
a[0] = 20;
a[1] = 15;
a[2] = 20;
a[3] = 30;
a[4] = 50;
System.out.println(a[2]); // 20
변수와 배열의 직관적 비교 예시
public class ArrayTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = new int[5];
int b[] = new int[5];
int[] kor = new int[100]; // [99]
System.out.println(kor.length);
for(int i =0;i<100;i++) {
kor[i] = i + 1;
}
for(int i=0;i<100;i++) {
System.out.println(kor[i]);
}
//System.out.println(kor[100]);
a[0] = 10;
a[1] = 20;
a[2] = 30;
a[3] = 40;
a[4] = 50;
for(int i = 0;i<5;i++) {
System.out.println(a[i]);
}
int c = 10;
int d = 20;
int e = 30;
int f = 40;
int g = 50;
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
}
}
배열의 선언
- 여러 가지 방법이 있으나, 일단 배운 것은
Int[] array = new int[10]; // 모두 0이 들어갑니다
이렇게 값을 직접 넣어주는 방법도 있음. 선언과 동시에
Int[] b = {5,6,7};
** 배열이름.length
배열의 크기는 천차만별인데, 선언할 때마다 숫자를 입력했는데 틀리면 어떡해?
그래서 배열의 크기를 바로 알려주는 단어(?) 가 바로 length이다.
배열의 초기값
인덱스 안에 들어있는 배열 요소의 초기값은 0이다.
public class ArraySample {
public static void main(String[] args) {
int[] array = new int[5];
for (int i = 0;i<array.length; i++){
System.out.println(array[i]);
}
}
}
실행결과
0
0
0
0
0
배열의 출력
- 개인적으로 이 부분 많이 헷갈렸어서,
조금 더 찾아봤음.
방법은 두 가지
1) 반복문
i가 0부터 시작해서, 배열의 길이만큼 돌아서, 배열의 인덱스값을 출력하게 만들면 된다.
예시
public class ArraySample {
public static void main(String[] args) {
int[] array = new int[10];
for (int i = 0;i<10;i++){
array[i] = i*10;
}
for (int i = 0;i<array.length; i++){
System.out.println(array[i]);
}
}
}
실행 결과
2) toString 사용
java.util.Arrays.toString() 메소드를 사용하기.
java.util.Arrays.toString() 메소드는 파라미터로 배열을 입력받아,
배열에 정의된 값들을 문자열 형태로 만들어서 리턴해 준다.
[ , , ,] 뭐 요런 식으로 나올 거야.
예시
import java.util.Arrays;
public class ArraySample {
public static void main(String[] args) {
int[] array = new int[10];
for (int i = 0;i<10;i++){
array[i] = i*10;
}
System.out.println(Arrays.toString(array)); // 출력
}
}
실행 결과