package test;
import java.util.Random;
import java.util.Scanner;
public class Test02 {
static void f1(int[] data) { // 아래 메인에서 f2(num)으로 먼저 랜덤 배율을 만들어줬으니 그것을 출력하기 위한 함수
for(int i=0;i<data.length;i++) { // 배열을 0번 인덱스부터 데이터길이만큼 차례대로 부르기 위함
System.out.print(data[i]+" ");
}
System.out.println();
}
static int[] f2(int num) { // 어떠한 수를 메인에서 받아서 그 값만큼
Random rand=new Random(); // random수를 생성하는 객체
int[] data=new int[num]; // 받은 값만큼 배열의 길이 설정
int i=0;
while(i<data.length) { // 중복됐을 때 다시 실행을 하기 위한 while, 언제 중복이 되지 않을지를 모르니깐 while 사용
int randNum=rand.nextInt(50)+1; // 랜덤할 수를 받을건데, 배열은 0부터 시작하기 떄문에 +1
boolean flag=false; // T:중복 발생 F:중복없음(통과)
for(int j=0;j<i;j++) {
if(randNum==data[j]) { // 만약이 중복된다면!
flag=true; // 플래그를 true로 바꾼다
break;
}
}
if(flag) { // -> 값이 중복되면
continue; // ->아래 i++을 수행하지 못하고 다시 위로
}
data[i]=randNum; // -> i위치의 배열에 수를 담고
i++; // -> 그 다음칸에 입력하기 위해 i++
}
return data;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num; // 유효범위(scope)
while(true) {
System.out.print("정수입력: ");
num=sc.nextInt();
if(1<=num && num<=50) {
break;
}
System.out.println("1이상 50이하만 입력하세요!");
}
int[] lotto=f2(num);
f1(lotto);
}
}