난수(Random) 발생시키는 방법임.
간단한 개념을 설명하자면 랜덤은 0 ~ 1 사이의 값들이 랜덤으로 나오는 것이다.
따라서 for문이나 while문으로 반복시키면 그만큼의 랜덤수들이 나오게 된다.
0~1사이의 수가 나오므로 int 타입으로 Casting 시켜서 정수값이 나오게 하는것이 편하다.
00. 정말 0~1사이의 수가 나오는지 확인해보자.
01. int타입으로 Casting 시키고 주사위로 가정해서 1~6까지 수 중 랜덤하게 나오게 해보자.
02. 한번 더 해보자.
03. 내가 적은 수와 랜덤수가 일치할 때 까지 질문하도록 만들어보자.
04. 확률적으로 보통 6번이면 맞추게 된다.
05. 그럼 응용해서 다음과같이 미니로또 번호도 나오게 만들 수 있다.
(중복값이 나오는데 이것은 뒤에나오는 배열 에서 다시 언급함.)
( ※ 미니로또 프로그램 코드 주소값: http://blog.naver.com/pandekten5/220774908599 )
※. 코드
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
/* 난수발생 */
int i, j, cnt, random;
Scanner scan = new Scanner(System.in);
int diceFace;
int userGuess;
cnt = 0;
while(true)
{
System.out.println("주사위값 예측해라. ");
userGuess = scan.nextInt();
diceFace = (int)(Math.random() * 6) +1;
cnt ++;
if(userGuess == diceFace)
{
break;
}else
{
System.out.println("diceFace값= " + diceFace);
}
}// while
System.out.println("당신은 " + cnt + " 회 만에 맞췄습니다.");
scan.close();
for(i =1; i<=6; i++)
{
System.out.print((int)(Math.random() * 45) +1 + "\t");
}
}// main
}// class