본문 바로가기

JAVA/기초 프로그래밍

Random 중복 거르기/ swit[r]사용

**

boolean swit[] = new boolean[10];
		for(int i = 0; i < swit.length; i++){
			swit[i] = false; // 전체가 0일경우 : 00000 00000 -> true가 되면 00010 00000
		}
		
		int r,w;
		w = 0; //인덱스 넘버
		while(w < 3 //원하는 숫자 3개) {
			r = (int)(Math.random()*10); // 0~9까지의 숫자
			if (swit[r] == false) {
				swit[r] == true; // 00000 00010 이 됨
				r_num[w] = r + 1;
				w++;

 

boolean swit[] = new boolean[10];        //10개의 숫자를 중복확인 할 것으로 길이가 10인 배열 생성

for(int i = 0; i < swit.length; i++){         //전체를 우선 다 스위치off시킨다

          swit[i] = false;  

 

int r, w;                                           // r = 랜덤에서 나온 번호 ,     w = 인덱스 번호

while(w < 3){                             

            r = (int)(Math.rando()*10);        // 랜덤에서 나오는 r이 스위치off인것을 확인하고 대입되도록 함

            if(swit[r] == false){

                swit[r] == true;

                r_num[w]  = r + 1;

                w++;

 

		// Random Number 맞추기
        
		int r_num, u_num;
		boolean clear;
		
		while(true) {
		
			//////////////////////////////////////////////		
			// 초기화		
			clear = false;
			
			// 1 ~ 100 -> Random Number
			r_num = (int)(Math.random() * 100) + 1;		// 1 ~ 100
			System.out.println("r_num:" + r_num);
			
			//////////////////////////////// loop = 10
			int w = 0;
			
			while(w < 10) {
				// User Input
				System.out.print("예상번호 입력 = ");
				u_num = sc.nextInt();
				
				// 비교(판정)
				int find = 0;
				if(u_num > r_num) {
					find = 0;
				}
				else if(u_num < r_num) {
					find = 1;
				}
				else {	// Bingo!
					clear = true;
					break;
				}
				
				// 메시지를 출력
				if(find == 0) {
					System.out.println("너무 큽니다");
				}else {
					System.out.println("너무 작습니다");
				}
			
				w++;
			}
			
			////////////////////////////////
			
			// 결과 출력		
			if(clear) {
				System.out.println("축하합니다. 정답입니다");
			}else {
				System.out.println("아쉽습니다. 다시 한번 도전하시기 바랍니다");
			}
			
			// play again?
			String msg;
			System.out.print("다시 시작하시겠습니까(y/n) = ");
			msg = sc.next();
			
			if(msg.equals("n") || msg.equals("N")) {
				System.out.println("안녕히 가십시오");
				break;
			}
			
			////////////////////////////////////////////////
		}