티스토리 뷰
java Random 함수
자바에서 랜덤한 수를 가져오고 싶을 때 랜덤함수를 사용한다. Math.random() 함수도 있지만 멀티 쓰레드 환경에서 성능에 더 좋은 java.util.Random클래스를 이용한 방법을 알아보자.
Java.util.Random 클래스
자바에서 제공하는 Random 클래스의 객체를 생성하면 쉽게 랜덤한 수를 생성할 수 있다.
많이 쓰이는 함수로는 nextint() 등이 있다.
package javaExampleCode;
import java.util.Random;
public class JavaRandomFunction {
public static void main(String[] args) {
Random random = new Random();
System.out.println("Double: "+random.nextDouble());
System.out.println("Boolean: "+random.nextBoolean());
//int 의 범위 -2,147,483,648 ~2,147,483,647 내에서 무작위 수 발생
System.out.println("Int: "+random.nextInt());
// 0 ~ 10 사이의 Random int 값 생성
System.out.println("Int(1~10): "+(random.nextInt(10)+1));
}
}
실행결과
Double: 0.6674041415685564
Boolean: false
Int: -155838737
Int(1~10): 9
생성방법 비교
범위를 지정해주지 않는 경우
random.nextInt();
- 이처럼 매개변수에 값을 안 넣어주면 해당 자료형의 범위 내에서 랜덤하게 출력이 된다.
범위를 지정해주는 경우
random.nextInt(100)+1;
- 0~원하는 범위 내에서 랜덤한 수를 생성한다. 이때 지정 범위는 0보다 큰 양의 값이어야 한다.
- 0부터 생성하기 때문에, 100까지 생성하고 싶으면 +1 해줘야 한다.
- 범위가 0을 포함한 음수의 값을 가지게 되면, java.lang.IllegalArgumentException:bound must be positive에러가 발생한다.
- 음수를 랜덤하게 생성하고 싶다면, 양수의 범위로 생성 한 후 -1을 곱해서 처리한다.
'Java' 카테고리의 다른 글
[java입문] 배열의 복사 , arrayCopy() (0) | 2019.01.30 |
---|---|
[java입문] 가변배열 (0) | 2019.01.30 |
[java입문] 다차원 배열 (0) | 2019.01.30 |
[java입문] 배열 (Array) (0) | 2019.01.30 |
[java입문] 변수 (0) | 2018.12.29 |