# 목적
: 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-주사위던지기
'BackEnd > Java' 카테고리의 다른 글
[Java] 원시타입(Primitive type)과 참조타입(Reference type) - 용어 정리 (0) | 2025.01.15 |
---|---|
[Java] for문 / while문을 이용한 무한 루프 작성과 탈출하는 방법 (0) | 2025.01.15 |
[Java] 삼항 연산자를 이용해 학점 환산하기 (0) | 2025.01.15 |
[Java] 중첩 for문을 이용한 구구단 자동 출력 (0) | 2025.01.15 |
[Java] do-while문을 활용한 랜덤 숫자 맞추기 게임 (Math.random 메소드, Scanner 사용) (2) | 2025.01.15 |