Java/예제
[23.06.01] JAVA 수행 미션_LottoGenerator
아캔두우잇
2023. 6. 1. 16:44
반응형
package j20230601;
public class LottoGenerater {
public static int generateNumber() {
return (int) (Math.random() * 45) + 1;
// math는 내장함수, 랜덤함수는 0~1까지의 숫자로 나옴.
// 가장 큰 값은 0.9999999999 ... 45곱하면 44.~~~
// int 정수형으로 나오고 44까지 나오면 더하기 1 해서 max 45까지
}
public static void main(String[] args) {
int [] lottoNumber = new int[6];
try {
// i 가 로또넘버 길이보다 작을 때 로또0번부터 5번까지 값 넣기
for(int i=0; i < lottoNumber.length; i++) {
lottoNumber[i] = generateNumber();
System.out.println( (i+1) + "번 행운의 숫자 : " +lottoNumber[i]);
// 중복된 값 처리
for (int j=0; j<i; j++) {
// i번 보다 앞선 숫자들과 비교(j<i)했을 때 중복된 숫자가 있으면
if (lottoNumber[i] == lottoNumber[j]) {
// i++된 값에 i-- 해서 해당 i번째 숫자 다시 추출
System.out.println("↑ 중복 숫자 <"+lottoNumber[i]+ "> 발생으로 다시 값을 추출합니다.");
i--;}
}
}
System.out.println("-----------------------------------------");
// for-each 문 p135
// n 객체에 배열 값들 차례로 출력할 때 쓴다.
// 배열 값의 타입에 맞게 개체 타입 정한다. int, String 등
for(int n: lottoNumber)
System.out.printf("%d ",n);
} catch(ArrayIndexOutOfBoundsException e) {
System.out.println("오류코드 : "+e);
}
finally {
System.out.println(); // 엔터 효과
System.out.println("福 금주에 이 번호가 행운을 가져다 드릴겁니다 :) 福");
}
}
}
1번 행운의 숫자 : 32
2번 행운의 숫자 : 9
3번 행운의 숫자 : 5
4번 행운의 숫자 : 33
5번 행운의 숫자 : 18
6번 행운의 숫자 : 9
↑ 중복 숫자 <9> 발생으로 다시 값을 추출합니다.
6번 행운의 숫자 : 17
-----------------------------------------
32 9 5 33 18 17
福 금주에 이 번호가 행운을 가져다 드릴겁니다 :) 福
반응형