자바 랜덤함수를 사용하는 방법은 2가지가 있습니다.

 

Random 클래스와 Math 클래스를 각각 사용해서 random value 를 생성하는 방법에 대해 설명 드리겠습니다.

 

 

1. Java.util.Random

 

Random 클래스의 객체를 생성하면 다음과 같이 다양한 메소드를 사용하여 원하는 타입의 random value 를 생성할 수 있습니다.

 

그 중에서도 가장 많이 사용되는 nextInt() 메소드는 파라미터를 사용해서

원하는 범위내의 양수 값을 (범위 : 0 ~ 파라미터-1) 가져올 수 있습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.Random;
 
public class RandomTest {
    public static void main(String[] args) {
        Random random = new Random();
        
        System.out.println(random.nextBoolean());   // true or false
        System.out.println(random.nextFloat());     // range : 0.0f ~ 1.0f(exclusive)
        System.out.println(random.nextInt());       // all 2^32 possible int values 
        System.out.println(random.nextInt(100));    // range : 0 ~ 99
    }
}
 
cs

 

 

<결과>

false
0.2699461
2087110484
73

 

 

 

2. Java.util.Math

 

Math 클래스는 수학적 연산과 관련된 메소드들을 제공하는 클래스로

random() 메소드를 사용하여 0.0 <= double value < 1.0  의 값을 생성할 수 있습니다.

 

random() 메소드가 double 타입을 리턴하기 때문에 타입 캐스팅(int)를 사용해서 정수형으로 변환하여 사용할 수 있으며, (int)(Math.random() * 최대값) + 최소값 의 연산을 통해 최소값 ~ 최대값의 범위 지정도 가능합니다. (실제적으로는 (int)(Math.random() * (최대값 - 최소값 + 1)) + 최소값  입니다.)

 

예제에서는 1 ~ 100 사이의 random value 를 출력하게 됩니다.

 

1
2
3
4
5
6
7
8
public class RandomTest {
    public static void main(String[] args) {
        // range : 0.0 ~ 1.0(exclusive)
        double randomValue = Math.random();    
        int intValue = (int)(randomValue * 100) + 1;
        System.out.println(intValue);
    }
}
cs

 

<결과>

75 

 

 

Posted by maze1008
,