My footsteps
code 실습 / 🔟 본문
728x90
🔥죽음의 로또 프로그램 만들기🔥

번호 자동 생성과 번호 수동 생성을 구현해보세요
로또 번호는 중복 허용 X, 정렬하여 출력해 주세요
< 👇중복제거..그나마 쉬운 설명 ㅠㅠ👇 >
package ex3.control;
import java.util.Random;
import java.util.Scanner;
public class MyNumber {
public static void main(String[] args) {
boolean run = true;
//while문 작동을 위한
int[] lotto = new int[6];
//로또 배열 0~5 (배열길이 6)
Random rand = new Random();
//로또 랜덤값들을 위한 랜덤 객체
System.out.println("< Lotto 관리 프로그램 >");
System.out.print("1.번호 자동 생성\n2.번호 수동 생성\n3.내 로또 번호 보기\n4.종료\n> ");
//스타트 페이지
while(run) {
Scanner sc = new Scanner(System.in);
//스타트페이지에서 메뉴 번호 입력받기 위한 스캐너
int num = sc.nextInt();
//입력받은 메뉴 번호를 담기위한 num 변수 생성
if(num==1) { //메뉴 1번(자동생성)을 골랐을때
System.out.println("< Lotto 번호 자동생성 >");
System.out.println("인덱스 로또번호");
for(int i=0; i<lotto.length; i++) {
lotto[i] = rand.nextInt(45)+1;
for(int j=0; j<i; j++) {
//0번째 인덱스는 비교대상이 없고
//1번째 인덱스는 0번과 비교해야하고
//2번째 인덱스는 0과1이랑 비교해야하고
//3번째 인덱스는 0,1,2와 비교해야하고
//4번째 인덱스는 0,1,2,3
//5번째 인덱스는 0,1,2,3,4와 비교한다.
//i가 index를 의미하니까 i=0~5 이고 j는 비교대상들인 0,01,012 이런것들이다
//그래서 j<i 라는 식을 쓴다.(i가 0번째 인덱스로 시작할때(1) j 즉, 비교대상은 아무것도 없으니(0)
if(lotto[i] == lotto[j]) { //중복일때
i--; //i값을 빼서 중복을 없애준다
break;//그리고 브레이크
}
}
}//자동생성 중복제거
int tmp = 0;
//빈컵 준비
for(int i=0; i<lotto.length-1; i++) {//-1을 하는 이유는 총 다섯번을 비교하기 때문에 0<=i<5 즉,0~4
for(int j=0; j<lotto.length-1-i; j++) {//-i를 하는 이유는 이미 정렬이된 인덱스를 또 살피면 안되기 때문에
if(lotto[j+1]<lotto[j]) {
tmp = lotto[j];
lotto[j] = lotto[j+1];
lotto[j+1] = tmp;
}
}
}//자동생성 정렬
System.out.print("1 │");
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d ",lotto[i]);
}//자동생성 출력
System.out.print("\n1. 저장하고 메인메뉴로 가기\n2.취소하고 메인메뉴로 가기\n>");
}//if문 끝
else if(num==2) { //메뉴 2번(수동생성)을 골랐을때
System.out.println("< Lotto 번호 수동생성 >");
System.out.print("번호를 입력하세요 (예; 6 7 12 20 40 45)\n>");
for(int i=0; i<lotto.length; i++) {
lotto[i] = sc.nextInt();
//입력한 수동번호를 lotto배열에 저장.칸마다 저장하기 위해 for문 사용
}
for(int j=0; j<lotto.length-1; j++) {
for(int j=0; j<lotto.length-1-i; j++){
if(lotto[j+1]<lotto[j]) {
int tmp = lotto[j];
lotto[j] = lotto[j+1];
lotto[j+1] = tmp;
}//if문 끝
}//두번째 for문 끝
}//수동생성 정렬
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d ",lotto[i]);
}//수동생성 출력
System.out.print("\n1. 저장하고 메인메뉴로 가기\n2.취소하고 메인메뉴로 가기\n>");
}//else if문 끝
}//while문 끝
}
}//main 끝
728x90
'국비수업 > CODE' 카테고리의 다른 글
code 실습 / 1️⃣2️⃣ (0) | 2023.03.03 |
---|---|
code 실습 / 1️⃣1️⃣ (0) | 2023.03.02 |
code 실습 / 9️⃣ (0) | 2023.02.27 |
🕺보이즈 플래닛 시나리오🕺 / 최종 코드 (0) | 2023.02.24 |
code 실습 / 8️⃣ (0) | 2023.02.24 |