티스토리 뷰

[문제 01] 배열을 이용하여 로또시뮬레이터를 만드세요.

[조건]

  • 사용자가 6개의 숫자를 입력, 나머지 한개는 랜덤으로 숫자입니다.
  • 사용자가 뽑은 로또 번호 중 동일한 번호가 나오면 안됩니다. (컴퓨터가 뽑은 로또 번호도 동일)
  • 사용자가 로또번호 입력 시 문자(ex) 한글, 영문)을 입력 시 "다시 입력해주세요."가 뜨면서 다시 숫자를 받아야 합니다.
  • 1등은 6개가 다 동일 할 때, 2등은 5개 맞고 1개보너스가 동일, 3등은 5개가 맞았을 때, 4등은 4개가 맞았을 때, 5등은 3개가 맞았을 때
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package Day_03;
 
import java.util.Scanner;
 
public class Lotto {
    public static void main(String[] args) {
        int ran = 0;
        int win = 0;
        int bonus = 0;
 
        Scanner sc = new Scanner(System.in);
        System.out.println("로또 숫자를 입력해주세요.");
        int[] lottoU = new int[7];
        for (int i = 0; i < lottoU.length; i++) {
            if (i<6) {
                System.out.print("> ");
                try {
                    lottoU[i] = Integer.parseInt(sc.nextLine());    
                } catch (Exception e) {
                    System.out.println("숫자를 입력해주세요.");
                    i--;
                    continue;
                }
                            
                //1~45이하의 숫자로 다시 입력해주세요.
                while (0>=lottoU[i] || lottoU[i]>=46) {
                    System.out.println("1~45이하의 숫자로 다시 입력해주세요.");
                    i--;
                    break;
                }                
                //같은 수 입력
                if (i>0) {
                    for (int j = 0; j<i; j++) {
                        if (!(lottoU[i] == lottoU[j])) {
                        }else {
                            System.out.println("이미 입력한 수 입니다.");
                            i--;
                        }
                    }
                }
            }else {
                //보너스 난수
                lottoU[i] = (int)((Math.random() * 45)+1);
                for (int j = 0; j < i; j++) {
                    if (!(lottoU[i] == lottoU[j])) {
                    }else {
                        lottoU[i] = (int)((Math.random() * 45)+1);
                    }
                }
            }
        }
        //사용자 로또 번호 출력
        System.out.print("[");
        for (int i = 0; i < lottoU.length; i++) {            
            if (i<6) {
                System.out.print(lottoU[i] + ",");                
            }else {
                System.out.print(lottoU[i]+"]");
            }
        }
        System.out.println(" ");
 
        /* 로또 시뮬레이터 돌리기 */
        int[] lotto = new int [7];
        for (int i = 0; i < lotto.length; i++) {
            ran = (int)((Math.random() * 45)+1);
            lotto[i] = ran;
            if (i>0) {
                for (int j = 0; j<i; j++) {
                    if (!(lotto[i] == lotto[j])) {                            
                    }else {
                        //System.out.println("lotto[" +i+ "]" + "???");
                        i--;
                    }
                }
            }
        }
        //로또번호 출력
        System.out.println(" ");
        System.out.println(":: 당첨 로또번호 ::");
        System.out.print("[");
        for (int i = 0; i < lotto.length; i++) {
            if (i<6) {
                System.out.print(lotto[i] + ",");                
            }else {                
                System.out.print(lotto[i]+"]");
            }            
        }
        /* 로또 번호와 비교 */
        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 5; j++) {
                if (lottoU[i]==lotto[j]) {
                    win += 1;
                }
            }
        }
        
        /* 보너스비교 */
        if (lottoU[6]==lotto[6]) {
            bonus += 1;
        }
        
        System.out.println(" ");
        if (win == 6) {
            System.out.println("<<< 1등 당첨 >>>");            
        }else if (win == 5 || bonus == 1) {
            System.out.println("<<< 2등 당첨 >>>");
        }else if (win == 5) {
            System.out.println("<<< 3등 당첨 >>>");
        }else if (win == 4) {
            System.out.println("<<< 4등 당첨 >>>");
        }else if (win == 3) {
            System.out.println("<<< 5등 당첨 >>>");
        }else {
            System.out.println("꽝입니다");
        }
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 
댓글