▶로또 문제 풀기 전에 난수를 출력해보자
package com.simple.lotto;
public class Lotto {
final byte LOTTO_NUMBER = 6;
private byte[] numbers = null;
public Lotto() {
numbers = new byte[LOTTO_NUMBER];
}
// 로또번호 만들기 (6개의 번호)
public void makeNumbers(){
// 난수를 이용하여 로또번호를 추출
System.out.println("로또번호 생성 준비중");
}
}
package com.simple.lotto;
public class LottoTest {
public static void main(String[] args) {
// 로또 객체 생성
Lotto lotto = new Lotto();
Lotto lotto1 = new Lotto();
Lotto lotto2;
lotto2 = lotto1;
lotto2.makeNumbers();
// Lotto에 toString()이 없는데 쓸수 있는 이유는
// 상위 폴더에서 toString()이 있기 때문에 상속받아서 사용 o
System.out.println(lotto.toString());
System.out.println(lotto.hashCode());
System.out.println(lotto1.hashCode());
System.out.println(lotto2.hashCode());
lotto.makeNumbers();
}
}
-콘솔 창
로또번호 생성 준비중
com.simple.lotto.Lotto@2133c8f8 // 패키지.클래스@주소
557041912
1134712904
1134712904
로또번호 생성 준비중
=============================
▶ 문제
-로또 번호 출력 문제 (난수를 이용하여 작성하시오)
-돈을 받고 돈에 맞는 로또 번호를 출력하는 프로그램을 작성하시오
-상속을 이용해보자
>출력
돈을 입력 하세요: 5000
로또 금액 5000원
3,6,12,45,9,10
7,8,11,25,32,44
9,8,14,16,20,30
20,21,31,33,36,41
1,9,5,11,16,18
package com.simple.lotto;
public class Lotto {
final byte LOTTO_NUMBER=6;
final byte MAX=45;
final byte MIN=1;
private byte[] numbers = null;
public Lotto() {
numbers = new byte[LOTTO_NUMBER];
}
// 로또번호 만들기 (6개의 번호)
public void makeNumbers(){
byte n =0;
// 난수를 이용하여 로또번호를 추출
for(int i=0; i<LOTTO_NUMBER; i++) {
// 중복을 제외한 6개의 로또번호 추출
// 방법1
do {
n = (byte)(Math.random()*(MAX-MIN+1)+MIN);
} while(exist(n)); // 중복체크 메서드
// 방법2
// do {
//
// n = (byte)(Math.random()*(MAX-MIN+1)+MIN);
// check = exist(n);
//
// } while(check); // 중복체크 메서드
numbers[i] = n;
System.out.print(n + " ");
}
}
private boolean exist(byte n) {
boolean check=false; // 중복이 없는 것을 기준
for(byte t:numbers) { // 배열에 있는 것을 꺼내서 t애 순서대로 저장
if(t==n) {
check=true;
break;
}
}
return check;
}
}
package com.simple.lotto;
import java.util.Scanner;
public class LottoTest {
public static void main(String[] args) {
// 로또 객체 생성
Lotto lotto = new Lotto();
Scanner sc = new Scanner(System.in);
System.out.print("로또 금액: ");
int money = sc.nextInt();
System.out.println("로또 금액 " + money + "원");
for(int i=0; i<(money/1000); i++) {
lotto.makeNumbers();
System.out.println();
}
sc.close();
}
}
-콘솔 창
로또 금액: 5000
로또 금액 5000원
31 29 8 33 37 16
45 21 4 1 27 31
41 18 45 40 19 27
15 30 43 32 44 36
20 14 9 17 5 8
=============================
▶ 문제
-로또 문제에서 로또번호 최솟값과 최대값을 출력해보자
package com.simple.lotto;
public class Lotto {
final byte LOTTO_NUMBER=6;
final byte MAX=45;
final byte MIN=1;
private byte[] numbers = null;
public Lotto() {
numbers = new byte[LOTTO_NUMBER];
}
// 로또번호 만들기 (6개의 번호)
public void makeNumbers(){
byte n = 0;
// 난수를 이용하여 로또번호를 추출
for(int i=0; i<LOTTO_NUMBER; i++) {
// 중복을 제외한 6개의 로또번호 추출
do {
n = (byte)(Math.random()*(MAX-MIN+1)+MIN);
} while(exist(n)); // 중복체크 메서드
numbers[i] = n;
System.out.print(n + " ");
}
}
private boolean exist(byte n) {
boolean check=false; // 중복이 없는 것을 기준
for(byte t:numbers) { // 배열에 있는 것을 꺼내서 t애 순서대로 저장
if(t==n) {
check=true;
break;
}
}
return check;
}
// 배열에서 최솟값
public byte getMinNumber() {
byte num=0;
int i=0;
num=numbers[i];
for(i=0; i<numbers.length; i++) {
if(num>numbers[i]) {
num=numbers[i];
}
}
return num;
}
// 배열에서 최댓값
public byte getMaxNumber() {
byte num=0;
int i=0;
num=numbers[i];
for(i=0; i<numbers.length; i++) {
if(num<numbers[i]) {
num=numbers[i];
}
}
return num;
}
}
package com.simple.lotto;
import java.util.Scanner;
public class LottoTest {
public static void main(String[] args) {
// 로또 객체 생성
Lotto lotto = new Lotto();
Scanner sc = new Scanner(System.in);
System.out.print("로또 금액: ");
int money = sc.nextInt();
System.out.println("로또 금액 " + money + "원");
for(int i=0; i<(money/1000); i++) {
lotto.makeNumbers();
System.out.print(" 최솟값: " + lotto.getMinNumber());
System.out.print(" 최대값: " + lotto.getMaxNumber());
System.out.println();
}
sc.close();
}
}
-콘솔 창
로또 금액: 5000
로또 금액 5000원
8 15 24 7 33 23 최솟값: 7 최대값: 33
42 4 29 3 32 11 최솟값: 3 최대값: 42
30 16 23 21 26 25 최솟값: 16 최대값: 30
27 38 14 44 43 21 최솟값: 14 최대값: 44
15 7 26 45 10 27 최솟값: 7 최대값: 45
=============================
▶ 문제
-로또 문제에서 로또번호를 순서대로 출력해보자
'JAVA 공부' 카테고리의 다른 글
JAVA 참고 사이트 (0) | 2023.05.10 |
---|---|
자바 윈도우로 색상바 조절하기 (0) | 2023.05.10 |
사칙연산 (0) | 2023.05.10 |
극장좌석 예약하기 (0) | 2023.05.10 |
자바 윈도우 프로그래밍 (0) | 2023.05.10 |