Java
10.20.(목) Java-07: 배열
콜라든포비
2022. 10. 21. 12:48
배열
변수는 한개의 데이터를 저장한다. 따라서 비슷한 종류의 데이터들을 정의할때, 각각 다른 이름의 변수들로 정의를 했다.
이제는 배열을 이용해 같은 타입의 데이터를 연속된 공간에 저장하는 방법을 배워보자.
자료형[] 배열명=new 자료형[] {데이터0, 데이터1, 데이터2,...}
배열의 조건은 자료형이 통일된 데이터라는 것이다. 개수는 정해져있지 않으며, 배열의 순서는 1번이 아닌 0번부터 시작한다.
char[] arr=new char[] {'A', 'B', 'C'};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
for(int i=0; i<3; i++) {
System.out.println(arr[i]);
}
제어문을 이용해서 배열을 출력하려고 할때, 배열안의 데이터 개수를 정확하게 알아야할 필요는 없다.
위 예시의 for문의 조건식인 i < 3; 을 i < arr.length; 로 바꿔주면, 배열의 개수 자체를 넣어줄 수 있다.
배열에서 최대, 최소값 출력하기
import java.util.Scanner;
public class ArrayMaxMin {
public static void main(String[] args) {
//임의의 수 5개를 입력받아서 최대값, 최소값 출력
Scanner sc=new Scanner(System.in);
int[] num=new int[5];
for(int i=0; i<num.length; i++) {
System.out.print("수를 입력해주세요: ");
num[i]=sc.nextInt(); // ex) 15, 24, 36, 77, 53
}
System.out.println();
int max=num[0]; // 몇번째 배열인지는 상관없음
for(int i=0; i<num.length; i++) {
if(max < num[i]) { // max 15 < 15 --> don't run --> i++
max=num[i]; // 배열 중 기존 max의 데이터보다 더 큰 숫자가 나오면 그 숫자를 max변수에 대입한다
}
}
System.out.println("maximum: " + max);
int min=num[0];
for(int i=0; i<num.length; i++) {
if(min > num[i]) {
min=num[i]; // 작은 수가 나타나면 그 숫자를 min변수에 대입
}
}
System.out.println("minimum: " + min);
sc.close();
}
}
2차원, 다차원 배열
배열은 행렬개념이라고 볼 수 있다.
하나의 배열에 5개의 데이터를 나열하면, 그 데이터는 1행의 5열의 값이라고 할 수 있다.
이를 확장해서 2행, 3행... 이렇게 다차원의 행렬로 나타낼 수 있다.
int[][] array=new int[][] {{10, 20, 30},{20, 30, 40},{30, 40, 50},{40, 50, 60}};
차원이 하나씩 늘수록 대괄호를 하나씩 더 붙여주기만 하면 된다.
※ 반복문 추가내용: break, continue
switch~case의 예제에서 사용했던 break는 break가 포함된 블럭을 빠져나오게 하는 역할을 한다.
for(int i=1; i<=10; i++) {
if(i==5) {
break; // if문을 제외한 가장 가까운 블럭 밖으로 빠져나간다.
// 반복문 안에서만 사용된다.
}
System.out.println(i);
}
비슷하지만 조금 다른 continue는 현재 명령문을 실행하지 않고 다음 조건으로 건너뛰게해주는 역할을 한다.
for(int i=1; i<=10; i++) {
if(i==5) {
continue; // i==5일때 건너뜀
}
System.out.println(i);
}