728x90

 

ball 변수에 배열 선언 및 길이까지 할당

a = b

b = c

c = a

로직을 이용하여 Math.random()으로 생성한 난수를 j에 넣고 

temp에 ball[i]를 넣어서 임시 보관시키고, 

난수 생성한 j를 ball인덱스 번호에 넣은 ball[j]를 ball[i] 다시 넣고

ball[j]에는 tmp에 넣어두었던 ball[i]를 다시 넣으므로써 스위칭이 가능해진다

 

 

 // 로또번호 6개 만들기
        // 45개의 정수값을 저장하기 위한 배열 생성.
        int[] ball = new int[45];

        // 배열의 각 요소에 1~45의 값을 저장한다.
        for(int i=0; i < ball.length; i++)
            ball[i] = i+1;
        System.out.println(Arrays.toString(ball));

        int temp = 0; // 두 값을 바꾸는데 사용할 임시변수
        int j = 0;    // 임의의 값을 얻어서 저장할 변수

        // 배열의 i번째 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞는다.
        // 0번째 부터 5번째 요소까지 모두 6개만 바꾼다.
        for(int i=0; i < 6; i++){
            j = (int)(Math.random()*45); // 0~44범위의 임의의 값을 얻는다.
            temp = ball[i];
            ball[i] = ball[j];
            ball[j] = temp;
            System.out.println(Arrays.toString(ball));
        }

        // 배열 ball의 앞에서 부터 6개의 요소를 출력한다.
        for(int i=0; i < 6; i++)
            System.out.printf("ball[%d]=%d%n", i, ball[i]);
728x90
반응형
728x90

 

랜덤 정수 출력

Math.random()

랜덤으로 숫자선택 : Math클래스의 random() 클래스 사용

임의의 0~0.9999…의 더블값을 반환

(0단계) 0 <= Math.random() >= 1 // 0~0.999999999까지 반환
(1단계) 0 <= (Math.random() * 10) < 10 // 0~9.99999
(2단계) 1 <= Math.random() * 10 + 1 < 11 // 1~10.99999	
(3단계) 1 <= (int)(Math.random() * 10 + 1) < 11 //  1~10 // 정수로 강제 형변환
// 강제형변환으로 maxNumber의 소수점 짤라줌

 

ex)사용 예제

 1부터 10 사이의 임의의 난수를 정해 1부터 난수까지의 정수 합계 (난수 임의의 숫자)

// 1부터 10 사이의 임의의 난수를 정해 1부터 난수까지의 정수 합계 (난수 임의의 숫자)

int random = (int)(Math.random() * 10 + 1);
int sum = 0; // 변수 초기화
		for(int i=1; i<=random; i++) {
				sum = sum + i;
//			sum += i;       위와 같은 코드
		}
System.out.println("1부터 "+random+"까지의 정수합계 : "+sum);

 

1부터 50까지의 임의의 난수를 뽑아 홀수인지 짝수인지 판별

public void method05_1() {		
    // 1부터 50까지의 임의의 난수를 뽑아 홀수인지 짝수인지 판별

    // 0~1
    // 1~10
    // 1~50 for문 최대치 +@
    // random 수의 범위 늘리기

    int random = (int)(Math.random() * 50 + 1); // 변수 선언

//		// 디버깅용 for문
//		for(int i=1; i<=random; i++) {
//			System.out.println("i="+i+" random="+random+"\n");
//		}

    if(random%2 == 0) {
        System.out.println(random+"은 짝수");
    }else {
        System.out.println(random+"은 홀수");
    }
}
728x90
반응형

+ Recent posts