임의의 정수를 뽑는 메소드로 Math.random() 메소드를 활용할 수 있습니다.
이 메소드는 0.0과 1.0사이에 속하는 double 타입의 난수하나를 리턴합니다.
0.0 <= Math.random() < 1.0
그렇다면 1~10 사이의 정수 중에서 하나의 정수를 얻기위해서 각 변에 10을 곱하면
0.0 * 10 <= Math.random() * 10 < 1.0 * 10
이 상태에서 각 변을 int타입으로 강제 타입 변환하면 다음과 같은 범위에 속하는 하나의
정수값을 얻을 수 있습니다.
(int)0.0 <= (int)(Math.random() * 10) < (int)10.0
이 상태에서 각 변에 1을 더해야 비로소 1~10사이의 정수 중에서 하나의 정수를 얻게됩니다.
0+1 <= (int)(Math.random() * 10) + 1 < 10 + 1
이 원리를 이용하면 start부터 시작하는 n개의 정수 중에서 임의의 정수 하나를 얻기위한 식이 세워집니다.
많이 사용하는 메소드이기때문에 외워야할것같습니다.
사용형식
int num = (int)(Math.random() * n) + start;
ex) 주사위 번호 하나를 뽑기 위한 연산식
int num = (int)(Math.random() * 6) + 1;
ex) 로또 번호 하나를 뽑기 위한 연산식
int num = (int)(Math.random() * 45) + 1;
예제 소스] 주사위 번호 하나 뽑기
package sec01;
public class IfDiceExample {
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 {
System.out.println("6번이 나왔습니다.");
}
}
}
'공부 기록노트 > java' 카테고리의 다른 글
[Java] GUI 프로그래밍을 위한 AWT (0) | 2023.01.01 |
---|---|
[조건문] if문과 switch문 (0) | 2022.10.02 |
[자바] 상속 (Inheritance), 부모/자식클래스 (0) | 2022.08.18 |
메소드 오버라이딩 (0) | 2022.08.12 |
코드 작성 연습방법 (1) | 2022.08.09 |