Sam Story

JAVA - 랜덤 함수 (Random class) 본문

JAVA

JAVA - 랜덤 함수 (Random class)

Sam H 2024. 5. 6. 15:19

 

오늘은 자바 랜덤 함수에 대해서 포스팅 해보겠다.

 

프로그램을 만들다보면 무작위로 값을 지정해줘야 하는경우가 생기는데

 

이러한 경우에 사용할 수 있는게 Random 클래스다.

 

 

그럼 바로 예제를 통해서 Random 함수에 사용법을 알아보도록 하자.

 

 

 

예제

import java.util.Random;

 

시작전 Random을 import 해준다.

 

 

import java.util.Random;

public class RandomExample {
    public static void main(String[] args) {

        // random 객체 생성 및 초기화
        Random random = new Random();

        // 정수형 변수 randomNum 변수 선언
        int randomNum;

        // 변수 randomNum을 정수타입 랜덤함수로 초기화
        randomNum = random.nextInt();

        // randomNum 출력
        System.out.println(randomNum);

    }
}

 

위와 같이 코드를 작성한 후 결과값을 확인해보자.

 

결과 값

 

1216678038이 나오는걸 볼 수 있는데

이는 int 변수의 범위인 -2,147,483,648 ~ 2,147,483,647 의 범위의 숫자중에 하나를 반환하기 때문이다.

 

 

그렇다면 특정 범위에서의 랜덤값은 어떻게 반환받아야 하는가

 

아래의 코드를 보자.

import java.util.Random;

public class RandomExample {
    public static void main(String[] args) {

        // random 객체 생성 및 초기화
        Random random = new Random();

        // 정수형 변수 randomNum 변수 선언
        int randomNum;

        // 변수 randomNum을 정수타입 랜덤함수로 초기화
        // 랜덤의 범위를 5까지로 설정.
        randomNum = random.nextInt(5);

        // randomNum 출력
        System.out.println(randomNum);

    }
}

 

random.nextInt 의 메서드에 바운드 값을 매개변수로 전달해주면

 

바운드 값까지의 random 값이 나오게 된다. 한번 실행해보자

 

결과 값

 

여러번 실행을 해보게 되면

1 , 2 , 3 , 4 , 5 중에 하나가 나오는게 아니라 0 , 1 , 2 , 3 , 4 중에 하나가 랜덤으로 나오는걸 확인할 수 있다.

이는 int의 기본값이 "0"이기 때문이다.

 

 

그렇다면 0이 아닌 다른 숫자의 범위를 구하고 싶은 경우에는 어떻게 해야 하는가?

 

 

아래의 코드를 보자.

import java.util.Random;

public class RandomExample {
    public static void main(String[] args) {

        // random 객체 생성 및 초기화
        Random random = new Random();

        // 정수형 변수 randomNum 변수 선언
        int randomNum;

        // 변수 randomNum을 정수타입 랜덤함수로 초기화
        // 랜덤의 범위를 5까지로 설정.
        // random으로 나온 0,1,2,3,4 값에 + 1을 해준다.
        randomNum = random.nextInt(5) + 1;

        // randomNum 출력
        System.out.println(randomNum);

    }
}

 

 

해답은 간단하다 random 객체를 이용해서 반환받은 random 값에 + 1을 해주게 된다면?

 

기존에 0 , 1 , 2 , 3 , 4 로 반환받는 값에 +1이 된 값으로 int 값이 지정될 것이다.

 

 

결과를 보도록 하자.

결과 값

 

실행 결과 기존에는 나오지 않던 5가 나오게되고

여러번 실행했을때 1 ~ 5 의 값중 하나만 나오는걸 알 수 있다.

 

 

 

 

오늘의 예제는 random 객체의 nextInt() 메서드만을 이용한 예제이지만

 

random 객체를 이용하면 int 값 뿐만 아니라 long , float , double , boolean 등 다양한 값들의 난수들도 만들 수 있다.

 

이러한 random 을 이용해 랜덤한 숫자값을 지정하는 다양한 방법에 적용할 수 있다.

 

 

오늘의 예제 깃허브 주소

 

GitHub - nam-su/RandomExample

Contribute to nam-su/RandomExample development by creating an account on GitHub.

github.com

 

'JAVA' 카테고리의 다른 글

JAVA - 자료구조 Map  (4) 2024.09.21
JAVA - 스레드 (Thread)  (0) 2024.05.12
JAVA - 배열 요소의 내림차순,오름차순  (0) 2024.03.23
JAVA - 문자열 자르기 Split  (0) 2024.03.17
JAVA - ArrayList 사용  (0) 2024.03.04