package org.example;
import java.util.Scanner;
public class rotto {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~45사이의 숫자 6개를 ','로 구분지어 입력해주세요 : ");
String str = sc.nextLine();
int[] numNum = new int[6];
for(int i = 0; i < numNum.length; i++) {
numNum[i] = Integer.parseInt(str.split(",")[i]);
//str.split(",")[i] -> [i]안붙이면 numNum[0]에 한줄로 다 들어가게 됨. 붙여야 숫자 한개씩 배열 한칸에 들어감. split은 배열로 반환해줌.
System.out.println(numNum[i]);
}
int[] brr = new int[6];
int count = 0;
//값 비교할 때 같으면 count++;
for(int i=0; i< numNum.length; i++){
brr[i] = (int)(Math.random() * 45) + 1;
System.out.println("brr : "+ brr[i]);
if(numNum[i] == brr[i]){
count++;
}
System.out.println("count"+count);
}
switch (count) {
case 6:
System.out.println("1등"); break;
case 5:
System.out.println("2등"); break;
case 4:
System.out.println("3등"); break;
case 3:
System.out.println("4등"); break;
case 2:
System.out.println("5등"); break;
case 1:
System.out.println("6등"); break;
default:
System.out.println("일치하는 숫자가 없습니다.");
}
}
}
▽
package org.example;
import java.util.Scanner;
public class rotto {
public static void main(String[] args) {
boolean check = true;
int[] numNum = new int[6];
while (check) {
check = false;
Scanner sc = new Scanner(System.in);
System.out.println("1~45사이의 숫자 6개를 ','로 구분지어 입력해주세요 : ");
String str = sc.nextLine();
String[] strNums = str.split(",");
if (strNums.length != 6) {
System.out.println("6개 입력하세요");
check = true;
} else {
for (int i = 0; i < numNum.length; i++) {
numNum[i] = Integer.parseInt(strNums[i]);
if (!(1 <= numNum[i] && numNum[i] <= 45)) {
System.out.println("수를 1~45 범위 내로 입력해주세요.");
check = true;
break;
} else {
for (int j = 0; j < i; j++) {
if (numNum[i] == numNum[j]) {
System.out.println("중복될 수 없습니다. 다시 입력하세요.");
i = numNum.length;
check = true;
break;
}
}
}
}
}
}
int[] brr = new int[6];
int count = 0;
//값 비교할 때 같으면 count++;
for (int k = 0; k < numNum.length; k++) {
brr[k] = (int) (Math.random() * 45) + 1;
if (numNum[k] == brr[k]) {
count++;
}
}
switch (count) {
case 6:
System.out.println("1등");
break;
case 5:
System.out.println("2등");
break;
case 4:
System.out.println("3등");
break;
case 3:
System.out.println("4등");
break;
case 2:
System.out.println("5등");
break;
case 1:
System.out.println("6등");
break;
default:
System.out.println("일치하는 숫자가 없습니다.");
}
}
}
check = false;로 재 초기화 하면 while문은 한번만 실행됩니다.
if문에 안걸리면 쭉 내려가서 ( = 정상적으로 6개 입력한 상태)
밑에 brr과 비교까지 이루어집니다.
근데 if문에 걸리면 에러문구가 출력되고 check = true;니까 while문이 재실행됩니다.