코드를 작성하기 앞서 어떤 순서로 진행될지 논리적 흐름을 정해봅시다.
* 흐름
* 자, 순서가 정해졌으니 코드로 옮겨볼까요?
A. import 하기
B. 변수 정하기
C. 반복문
D. 소스코드 작성
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); //입력받기 위한 Scanner 객체 생성
System.out.print("받고 싶은 행운번호의 개수를 입력해주세요: ");
int num = scan.nextInt(); //입력받은 숫자를 저장
int cnt = 1; //코드 실행의 카운트값
System.out.println("================================");
while(cnt <= num) { //1부터 받고 싶은 행운번호의 개수만큼을 반복
int lotto[] = new int[6]; //번호 6개짜리 배열 생성
//1~45 숫자 생성 및 저장
for (int i = 0; i < lotto.length; i++) {
//Math.random()을 통해 1~45 사이의 난수 생성
lotto[i] = (int)(Math.random()*45 + 1);
//중복제거
for (int j = 0; j < i; j++) {
if(lotto[i] == lotto[j]) {
//이전과 중복된 값이 있다면 다시 새로운 숫자를 생성하여 저장
i--;
break;
}
}
}
//정렬
for (int i = 0; i < lotto.length; i++) {
for (int j = i+1; j < lotto.length; j++) {
//옆 방에 값과 비교해서 큰수를 오른쪽으로 이동
if(lotto[i] > lotto[j]) {
int temp = lotto[j];
lotto[j] = lotto[i];
lotto[i] = temp;
}
}
}
//배열의 각 요소를 출력
System.out.print(" *오늘의 행운번호["+cnt+"]: ");
for (int k = 0; k < lotto.length; k++) {
System.out.print(lotto[k]+" ");
}
System.out.println();
cnt++; //카운트값을 증가
}
}
※ [보너스] 더 간단하게 만들어보기(feat. 컬렉션)
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); //입력받기 위한 Scanner 객체 생성
System.out.print("받고 싶은 행운번호의 개수를 입력해주세요: ");
int num = scan.nextInt(); //입력받은 숫자를 저장
int cnt = 1; //코드 실행의 카운트값
System.out.println("================================");
while(cnt <= num) { //1부터 받고 싶은 행운번호의 개수만큼을 반복
TreeSet<Integer> ts = new TreeSet<>(); //TreeSet객체 생성
for (int i = 0; ts.size() < 6; i++) {
//Math.random()을 통해 1~45 사이의 난수 생성하고 TreeSet객체에 추가
ts.add((int)(Math.random()*45 + 1));
}
//배열의 각 요소를 출력
System.out.print(" *오늘의 행운번호["+cnt+"]: ");
//향상된 for문
for (Integer number : ts) {
System.out.print(number + " ");
}
System.out.println();
cnt++;
}
}
똑같은 예제라도 쉽고 효율적으로 할 수 있다는 말씀! (feat. 당첨되면 연락주세요~)
* 재밌는 예제를 통해서 쉽게 배워봅시다. - 끝 -
숫자 야구 게임 (0) | 2023.06.29 |
---|---|
홀짝 맞추기 게임을 자바로 구현해 보자!!(feat.오징어게임) (0) | 2022.12.02 |
왜 Java 계산기에서 0으로 나누면 에러가 나나요? (1) | 2022.11.17 |
댓글 영역