보기 좋게 설명 먼저 적어 놓았습니다.
가장 큰for문 안에 while문 넣어 놓은 형태입니다.
while 문 안에
if문으로 0인 경우 골라내기 와 for문으로 이전 로또숫자와 같은 숫자 골라내기
가 존재
import java.util.Scanner;
public class 로또 번호 생성기{
public static void main(String[] args) {
/*********코드 시작*********/
int Lotto[] = new int[6];//로또 번호 받을 배열
int Random = 0;//Random숫자 담을 변수
/*****최종 완성된 로또 번호 입력 반복문*****/
for(int i = 0 ; i < 6; i++)
{
/*****로또 번호 생성 반복문*****/
while(true)
{
Random = (int)(Math.random()*100 %45); // 하단 추가설명 1번
System.out.printf("%d ",Random);// 숫자 확인 차 넣음
if(Random == 0)
{
continue;// 영이 나올 경우
}
for(int j=0;j<5;j++)
{
if(Random == Lotto[i])// 같은 숫자일 경우
continue; //
}
/**** 모든 조건 만족했다면 ****/
break;
}
//****모든 검사를 마친 로또번호에 집어 넣자****//
Lotto[i] = Random;
}
System.out.println("");
for(int k=0;k<6;k++)
System.out.printf("%d ",Lotto[k]);
}
}
추가설명
Random = (int)(Math.random()*100 %45);
(int) 캐스팅
-> random메쏘드는 float형의 임의의 값을 반환합니다.
Math.random()
-> 0.0 과 ~ 1.0 사이의 난수를 생성합니다.
* 100
-> 0.0~1.0 사이의 값에 100을 곱해 0.0 ~ 100.0 사이의 값을 반환하게 했습니다.
% 45
-> 45미만의 숫자를 골라내기 위해 사용했습니다.
코드는 많이 미흡할 수 있습니다.
혹시 간결한 코드 있으면 공유해주세요^^
감사합니다~
'IT > JAVA' 카테고리의 다른 글
[객체 관련 용어 정리] 객체(Object) 인스턴스(instance) 클래스(Class)를 관계를 통해 알아보자 (0) | 2021.02.10 |
---|---|
[JAVA] 자바 - 2차원 배열 길이 length (1) | 2021.02.09 |
[JAVA] 자바 - 가변배열 - 2차원 배열 (0) | 2021.02.09 |
[JAVA] 자바 - 자바의 특징을 이해하자 (0) | 2021.02.06 |
[JAVA] 자바 - 멀티쓰레드(Thread)를 지원한다는 의미 (0) | 2021.02.06 |