본문 바로가기
BackEnd/Java

[Java] Math.random()을 이용하여 주사위 던지기 (if문, switch문 각각 사용 예시)

by ryuneng 2025. 1. 15.
반응형

# 목적

: JAVA의 Math.random() 메소드를 통해 주사위를 던졌을 때 나오는 랜덤 숫자의 결과를 구현


Math.random() 메소드 란?

: 0.0과 0.1 사이의 있는 무작위의 숫자(Double타입, 실수)를 리턴해주는 자바의 함수

Math.random() 함수 사용 방법

: 먼저, Math.random()의 기본 범위는 0.0 ~ 0.999999999...로 이루어져 있다.
- 범위 : 0.0 <= Math.random() < 1.0 (0.0 포함, 1.0 미포함)

* 이를 정수의 난수(랜덤 숫자)로 표현하기 위해서는 3가지의 과정이 필요하다.

1. Math.random()*숫자 를 곱해 최대값 정하기
: 곱해준 숫자보다 0.*******... 작은 값이 반환된다.
ex) Math.random()*6 의 최대값 = 5.9999999...


2. int 타입으로 강제 타입 변환 (Casting)
: Math.random()의 기본값은 실수이기 때문에 정수로 변환해줘야 한다.
ex) (int) (Math.random()*6) 의 최대값 = 5


3. 뒤에 +숫자 더해주기
: 원하는 범위가 6이라고 했을 때, Math.random()*6을 하면 1~6까지 나오는 것이 아니라 위의 예시처럼 1~5의 숫자가 나오기 때문에
뒤에 +1을 더해주어야 비로소 1~6까지의 결과가 나온다.
ex) (int) (Math.random()*6) +1 의 범위 = 1~6



# 그럼 이제 코드를 작성해보자.

오늘의 코드 작성 방법은 2가지

1.if문을 이용한 방법
2.switch문을 이용한 방법
< 조건 : 주사위를 굴렸을 때 특정 숫자가 나올 확률은 1/6 >

1. if문을 이용한 자바 코드 입력

public class IfRandom {
	public static void main(String[] args) {
    	int num = (int) (Math.random()*6) +1;
        if (num == 1) {
        	System.out.println("1번 당첨!");
        } else if (num == 2) {
        	System.out.println("2번 당첨!");
        } else if (num == 3) {
        	System.out.println("3번 당첨!");
        } else if (num == 4) {
        	System.out.println("4번 당첨!");
        } else if (num == 5) {
        	System.out.println("5번 당첨!");
        } else if (num == 6) {
        	System.out.println("6번 당첨!");
        }
        System.out.println("주사위 던지기를 종료합니다.");
	}

- 콘솔 창 결과 :

3번 당첨!
주사위 던지기를 종료합니다.

(번호는 실행 시 계속해서 랜덤으로 바뀐다.)

2. swtich문을 이용한 자바 코드 입력

public class SwitchRandom {
	public static void main(String[] args) {
    	int num = (int) (Math.random()*6) +1;
		switch(num) {
		case 1:
			System.out.println("1번 당첨!");
			break;
		case 2:
			System.out.println("2번 당첨!");
			break;
		case 3:
			System.out.println("3번 당첨!");
			break;
		case 4:
			System.out.println("4번 당첨!");
			break;
		case 5:
			System.out.println("5번 당첨!");
			break;
		case 6:
			System.out.println("6번 당첨!");
			break;
		default:
			System.out.println("그 외");
			break;
		}
		System.out.println("주사위 던지기를 종료합니다.");
	}

- 콘솔 창 결과 :

2번 당첨!
주사위 던지기를 종료합니다.

(번호는 실행 시 계속해서 랜덤으로 바뀐다.)


 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Java-Math.random-주사위던지기