Random() 함수와 Random 클래스의 비교
사용 예제 )코드를 복붙 하여 실행해 보시기 바랍니다. 설명은 코드 아래 부분에 있습니다.
import java.util.Random;
public class Sample {
public static void main(String[] args) {
//// Math.random() 과 Random 클래스의 비교
// 필요한 부분만 복사하셔서 사용 하시면 되겠습니다.
// Math클래스의 random을 이용
// 0에서 100 까지의 난수를 발생해서 정수형으로 저장함
int nNum = (int) (Math.random() * 100) + 1;
System.out.println("Math.random() 발생한 난수 : " + nNum);
/////////////////////Random 클래스를 이용///////////////////////////////////
//생성자를 만들때 7 씨드를 넣지 않으면 현재시간을 씨드로 사용 함
//Random random = new Random();
Random random = new Random(7);
//- 2,147,483,648 부터 2,147,483,647 까지 의 난수발생
int nNum1 = random.nextInt();
System.out.println("random.nextInt() 발생한 난수 : " + nNum1);
//1 부터 100 사이의 난수발생
int nNum2 = random.nextInt(100) + 1;
System.out.println("random.nextInt(100) + 1 발생한 난수 : " + nNum2);
//true 또는 false 의 난수발생
boolean booTorF = random.nextBoolean();
System.out.println("random.nextBoolean 발생한 난수 : " + booTorF);
//더블형의 난수발생 1 에서 100 사이
double dNum = random.nextDouble()*100 + 1;
System.out.println("random.nextDouble()*100 + 1 발생한 난수 : " + dNum);
}
}
//결과는 :
//Math.random() 발생한 난수 : 86
//random.nextInt() 발생한 난수 : -1156638823
//random.nextInt(100) + 1 발생한 난수 : 65
//random.nextBoolean 발생한 난수 : true
//random.nextDouble()*100 + 1 발생한 난수 : 1.962895673974895
첫 번째 Math클래스의 random() 메서드가 Random클래스 보다 사용하기 편하고
조금만 응용 하면 Random클래스의 모든 메서드 기능을 사용할 수가 있습니다.
구성은 :
Math 클래스의 random() 사용시
Math.random(); //Math 클래스의 random() 메소드
Math 클래스의 random() 메서드는 기본적으로 0.0부터 1.0 미만까지의 난수를 발생합니다.
int nNum = (int) (Math.random() * 100) + 1;
이렇게 원하는 범위의 숫자를 곱해주고 1을 더해줘야 그사이(1에서 100까지)의 난수를 얻을 수 있습니다.
Random 클래스 사용 시
1.Random 생성자명1 = new Random(); //현재시간이 씨드로 사용됨
2.Random 생성자명2 = new Random(7); //7 이 씨드로 사용됨
2개 중에 아무거나 사용하면 됩니다.
만들어진 생성자를 이용해서 Random클래스의 메서드를 사용하시면 됩니다.
.nextInt(); - 2,147,483,648 부터 2,147,483,647 까지 의 난수발생
.nextInt(정수형); 0 부터 정수형-1 까지의 난수 발생
.nextBoolean(); //true 또는 false 발생
.nexDouble(); //더블형의 난수발생 0 부터 1미만 까지의 난수 발생
실전에서의 사용빈도는 두 가지 경우다 낮습니다.
2가지 중에 상황에 맞는 것을 잘 선택하시면 되겠습니다.
728x90
반응형
'자바' 카테고리의 다른 글
자바 File 클래스 [북붙따라하기] (0) | 2020.12.30 |
---|---|
자바 Time , Date 시간 날짜 출력 [북붙따라하기] (0) | 2020.12.30 |
자바 문자열 Pattern 클래스와 정규표현식 [북붙따라하기] (0) | 2020.12.29 |
자바 문자열 앞뒤 공백 없애기 trim( ) [북붙따라하기] (0) | 2020.12.29 |
자바 문자열에서 문자, 문자열 잘라내기 substring( ) [북붙따라하기] (0) | 2020.12.29 |
댓글