배열

💡 배열


같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 "배열"이라고 한다.

여러 값을 index로 접근해서 관리할 수 있다. (index는 0부터 시작한다. 범위는 0부터 배열의 길이 -1까지이다) 

 

배열 선언

타입[] 변수이름; -> int[] score;
타입 변수이름[]; -> int score[];

 

배열 생성

배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다.

 

타입[] 변수이름; // 배열을 선언
변수이름 = new 타입[길이]; // 배열을 생성

// 배열 선언과 생성을 동시에
int[] score = new int[5]; // 길이가 5인 int배열

 

배열의 인덱스를 활용해 해당하는 인덱스에 값을 저장할 수 도 있다.

score[3] = 100; // 배열 score의 4번째 요소에 100을 저장한다.

 

배열의 길이 (length)

'배열이름.length'를 통해서 배열의 길이에 대한 정보를 얻을 수 있다.

int[] arr = new int[5]; // 길이가 5인 int배열
int tmp = arr.length; // arr.length의 값인 5가 tmp에 저장된다.

 

length를 이용해 배열의 길이가 변하면 자동으로 변경된 배열의 길이를 값으로 갖는다.

for문과 함께 활용하여 일일이 조건식에서 값을 변경해주지 않아도 되는 장점이 있다. (유지보수가 좋다)

int[] score = new int[5];

for (int i = 0; i < score.length; i += 1) {
    System.out.println(i);
}

// 실행결과
// 0
// 1
// 2
// 3
// 4

score의 길이가 5(인덱스 0부터 4까지)이기 때문에 i가 0부터 4까지 출력이 된다.

 

배열의 초기화

int[] score = new int[] {50, 60, 70, 80, 90}; // 배열의 생성과 초기화를 동시에

저장할 값들을 괄호{} 안에 쉼표로 구분해서 나열하면 되며, 괄호{} 안의 값의 개수에 의해 배열의 길이가 자동으로 결정되기 때문에 괄호[ ] 안에 배열의 길이는 안 적어도 된다.

 

💡Random


Random클래스는 난수를 생성할때 사용한다.

Math클래스를 사용하는 방법과 Random클래스를 사용하는 방법 두 가지가 있다

Math.random()과 Random을 필요에 따라서 사용한다.

 

Math.random()

Math.random()은 double타입의 0이상 1 미만 수를 무작위로 생성한다.

Math.random();   // 0 ~ 1 사이의 랜덤 숫자 생성

 

Random

Random은 boolean, int, long, float, double 타입의 난수를 생성할 수 있다.

Random random = new Random();

random.nextInt(); // int형의 난수가 생성

 

nextInt(int i) 0부터 i까지의 랜덤 한 숫자를 리턴합니다

nextInt() Int 타입의 최소-최대범위 안에서 랜덤 한 숫자를 리턴합니다

nextLong() Long 타입의 최소-최대범위 안에서 랜덤 한 숫자를 리턴합니다

nextDouble() Double 타입의 0 - 1까지의 랜덤한 숫자를 리턴합니다

nextFloat() Float 타입의 0 - 1까지의 랜덤한 숫자를 리턴합니다

nextBoolean boolean타입의 true, false 중 랜덤 한 값을 리턴합니다

 

💡Guard Clause


Guard Clause : 코드의 depth가 깊어지는 것을 막을 수 있는 방법이다 (실제로 처리해야 하는 상황이 아닌 경우를 처리 -> 예외 처리)

                          if ~else가 과도하게 중첩되는 경우 가독성과 유지보수성이 떨어진다.

                          guard clause를 적용함으로써 가독성을 향상하고, 불필요한 조건 검증을 미리 방지한다

 

 

'Java' 카테고리의 다른 글

가비지 컬렉션(Garbage Collection)이란?  (0) 2023.01.03
JVM(Java Virtual Machine)이란?  (0) 2023.01.01
반복문 - for문  (0) 2022.05.22
조건문  (0) 2022.05.15
입출력  (0) 2022.05.15