본문 바로가기
Back_end/JAVA

JAVA - 기본 API(java.util.Random)

by hyeon1016 2024. 9. 27.

java.util.Random

 

무작위 값을 얻을 때 사용하는 클래스다.

 

생성방법

Random random = new Random();

 

 

 

생성자

 

Random()

- 기본 생성자로 Random 인스턴스를 생성하면 currentTimeMillis()(현재시간)를 종자 값으로하는 인스턴스 생성

 

Random(long seed)

- seed를 종자 값으로 하는 인스턴스 생성, 같은 종자 값을 입력하면 항상 동일한 순서의 무작위 수를 생성한다.

  예시)  Random random1 = new Random(2);

            Random random2 = new Random(2);

            위 두 개의 랜덤 값은 같다.

 

 

 

메서드

메서드 의미
int nextInt() 무작위 int 값 반환

참조변수.nextInt();
int nextInt(int n) 0부터 n전 까지의 랜덤 값 반환

참조변수.nextInt(10); ==> 0~9
long nextLong() 무작위 long 값 반환

참조변수.nextLong();
double nextDouble() 0.0부터 1.0전 까지의 무작위 double 값 반환

참조변수.nextDouble();
float nextFloat() 0.0부터 1.0전 까지의 무작위 float 값 반환

참조변수.nextFloat();
boolean nextBoolean() 무작위 boolean값 반환

참조변수.nextBoolean(); ==> true? false?

 

 

 

활용 예시(주사위 굴리기 프로그램)

import java.util.Random;
import java.util.Scanner;

public class exam {
	
	public static void main(String[] args) {
		Random rd = new Random();
		int first;
		int second;
		String answer = "y"; 
		
		Scanner input = new Scanner(System.in);
		
		while(answer.equals("y")) {
			first = rd.nextInt(6)+1;
			second = rd.nextInt(6)+1;
			
			System.out.println("주사위를 굴리시겠습니까? y or n");
			
			answer = input.nextLine();
			
			System.out.println("첫 번째 주사위 값 : "+first);
			System.out.println("두 번째 주사위 값 : "+second);
			
			if(first==second) {
				System.out.println("축하합니다. 따따블입니다~");
			}
		}
	}
}

 

1. Random 객체 생성, 참조변수 rd

2. 변수 선언(first, second) 및 초기화(answer)

3. Scanner 객체 생성, 참조변수 input

4. 반복문 while, 반복 조건으로 "answer의 값이 "y"와 일치시 true"(answer은 참조형이기 때문에 equals()로 비교)

 

while문 내부 작성

5. first, second 변수 초기화 진행, 값을 "rd.nextInt(6)+1"로 지정 1~6까지의 랜덤 값 할당 

6. println()으로 주사위를 굴릴지 확인 문구 출력

7. answer변수에 input.nextLine()할당.

   콘솔을 통해 문자열을 입력하고, 입력한 값을 answer변수에 대입

8. println()으로 first, second변수를 출력하여 랜덤 값 확인

9. if문을 사용해 만약 first변수와 second 변수의 값이 일치한다면 println()으로 축하 문구 출력

10. while문의 조건을 확인 7. 에서 입력한 값이 "y"라면 다시 한 번 반복 

'Back_end > JAVA' 카테고리의 다른 글

JAVA - 기본 API(BigDecimal, Wrapper)  (0) 2024.09.27
JAVA - 기본 API(java.util.Scanner)  (0) 2024.09.27
JAVA - 기본 API(Date, Calendar)  (1) 2024.09.27
JAVA - 기본 API(문자열 클래스)  (1) 2024.09.26
JAVA - 내부 클래스  (0) 2024.09.23