Test141 Random 클래스 / 로또 번호 생성기 (난수 발생 프로그램)
※ java.util.Random 클래스는
여러 형태의 난수를 발생시켜 제공하는 클래스이다.
Math 클래스의 정적 메소드인 random() 메소드도 난수를 제공하는 메소드이지만
0.0 ~ 1.0 사이의 실수 형태만 발생하게 되므로
필요한 여러 형태의 난수를 만들어내기 위해서는 추가적인 연산들을 수행해야 한다.
그래서 자바는 여러 형태의 난수를 발생시켜주는 전용 클래스인
Random 클래스를 별도로 제공하고 있다.
※ 로또 번호 생성기 (난수 발생 프로그램)
프로그램이 실행되면 기본적으로 로또를 5게임 수행하는 프로그램 구현
(작은 번호부터 큰 순서로 정렬)
※ 로또번호 : 1~45 사이 중복되지 않는 6개의 수
Test141.java
import java.util.Random;
public class Test141
{
public static void main(String[] args)
{
// 인스턴스 생성
Random rd = new Random();
// 주요 변수 선언
int temp[] = new int[6]; // 수를 담을 변수
boolean t = true;
// 배열생성
for (int i=0; i<5; i++) //개행을 위한 포문
{
// 난수 발생
for (int j=0; j<6; j++) //앞에서부터 비교
{
//temp[j] = (int)Math.round(Math.random()*45);
temp[j] = rd.nextInt(45)+1;
for (int k=0; k<6; k++) //뒷번호들과 비교
{
if (j==k)
break;
else if (temp[j]==temp[k])
{
temp[j] = rd.nextInt(45)+1;
k=0;
}
}
}
// 선택정렬
for (int a=0; a<temp.length-1; a++)
{
for (int b=a+1; b<temp.length; b++)
{
if (temp[a]>temp[b])
{
temp[a] = temp[a]^temp[b];
temp[b] = temp[b]^temp[a];
temp[a] = temp[a]^temp[b];
}
}
}
// 결과 출력
for (int n : temp)
System.out.printf("%3d", n);
System.out.println();
}
}//end main()
}
cmd
11 12 18 19 26 31
3 7 12 14 19 25
8 11 20 23 30 41
9 20 23 34 40 42
3 21 28 31 32 41
계속하려면 아무 키나 누르십시오 . . .
'Study Note > Java' 카테고리의 다른 글
JAVA_ Test142_ 예외(Exception) 처리 개요 / 정수입력 (0) | 2018.06.17 |
---|---|
JAVA_ Test141_1_ Random 클래스 / 로또 번호 생성기 (난수 발생 프로그램) (0) | 2018.06.17 |
JAVA_ Test140_ Math 클래스 (0) | 2018.06.16 |
JAVA_ Test139_ Calendar 클래스 / GregorianCalender() / 날짜더하기 프로그램 (0) | 2018.06.16 |
JAVA_ Test138_ Calendar 클래스 / GregorianCalender()는 Calendar의 자식객체 (0) | 2018.06.16 |
댓글