자바 로또 프로그램 만들기(Coding by So)
숫자 6개를 입력받아서 배열에 저장(6개가 아니면 다시 입력)
랜덤하게 생성된 로또값(1~45, 중복 X)과 비교, 맞은개수를 확인하여 등수 출력
자세한 설명은 코드에 주석으로 달아놨으니 참고하면 될듯
package game82;
import java.util.Scanner;
import java.util.Random;
public class FinalLotto {
public static void main(String[] args) {
//변수 선언
String[] splitedValue;
int[] numbers = new int[6];
int cnt = 0;
//스캐너 입력 준비
Scanner sc = new Scanner(System.in);
//사용자에게 숫자 입력받기
while(true) {
System.out.println("숫자 여섯개를 입력해주세요.");
String inputValue = sc.nextLine();
//입력받은 숫자를 띄어쓰기로 구분하기
splitedValue = inputValue.split(" ");
//사용자가 여섯개의 숫자를 입력하지 않았을 경우 에러메시지
if(splitedValue.length!=6) {
System.out.println("6개를 입력해주세요.");
}else break;
}
//분리한 값을 숫자로 변환해 배열 저장 후 출력
for(int i = 0; i < 6; i++) {
numbers[i] = Integer.parseInt(splitedValue[i]);
System.out.print(numbers[i] + " ");
if(i==5) {
System.out.print("\n");
}
}
//lotto함수로 보낸 후, 로또 맞은 숫자 받아오기
cnt = lottoMachine(numbers);
//숫자 print 함수로 보낸 후 출력
printMachine(cnt);
}
///////////로또 함수
static int lottoMachine(int[] numbers) {
//난수 설정
Random rd = new Random();
//변수 설정
int[] lottoValue = new int[6];
int cnt = 0;
//6개의 난수로 배열 초기화하기
for(int i = 0; i < 6; i++) {
lottoValue[i] = rd.nextInt(45)+1; //+1을 해야 1~45 숫자 받아옴
for(int j = 0; j < i;j++) {
if(lottoValue[i]==lottoValue[j]) {
i--; //중복 난수값 제거
}
}
}
System.out.println("****당첨숫자****");
//난수값 출력하기
for(int i = 0; i < 6;i++) {
System.out.print(lottoValue[i]+" ");
if(i==5) {
System.out.print("\n");
}
}
//사용자 입력값과 난수값 중복 체크해서 count
for(int i = 0; i < 6; i++) {
for(int j = 0; j < 6; j++) {
if(lottoValue[i]==numbers[j]) {
cnt++;
}
}
}
//일치하는 숫자 반환
return cnt;
}
///////////출력 함수
static void printMachine(int count) {
System.out.println(count + "개 맞았다잉");
//맞춘 갯수에 맞춰서 결과값 출력
if(count==6) {
System.out.println("1등 대박 터졌다잉");
}else if(count==5) {
System.out.println("2등 대박 터졌다잉");
}else if(count==4) {
System.out.println("3등 대박 터졌다잉");
}else if(count==3) {
System.out.println("4등 오천원 가져가라잉");
}else System.out.println("꽝이다 꽝");
}
}