*JAVA*

[java] while문 - Math.random() 응용

깐부로부터 2021. 10. 20. 22:47

random : 무작위의 
Math 라는 클래스의 random() 메소드를 활용한다
random() 메소드의 결과 값 : 0.0 ~ 0.999999999999999999.......................

[표현법] Math.randeom();
(객체 생성 필요 없음)

 

1부터 랜덤한 수(1~10)까지 모두 더하는 총 합계 더하기

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
public void method4() {
                        
        // 1 단계. random()메소드가 잘 작동되나? 호출해보기
        double random = Math.random();
        System.out.println("random : " + random*10);
        
        
        // 지수표기법
        // 2단계. 결과값에 10을 곱하면
        //            0.0 ~ 9.9999999999~
        // 2.2단계. int형으로 강제형변환을 하면?
        //            0 ~ 9 
        // 2.3단계. 범위를 맞추기위해 +1을 해주면~?
        //            1 ~ 10
        // (int)(Math.random() * 몇개의 랜덤값) + 시작 수;
        
        
        int random2 = (int)(Math.random()*10+1 ;
        System.out.println(random2);
        
        // 3단계. 반복문 통해서 누적합 구하기
        // 1부터 랜던한 수(1~10)까지 모두 더하는 총 합계
        // 1부터 시작을 해서 랜덤한수(5)
        // 1 + 2 + 3 + 4 + 5
        //랜덤한수까지 더한결과 출력 :
        
        int sum = 0;
        
        int i = 1;
        
        while(/* 1부터 10까지 중에 무작위 까지 */ i <= random2) {
            sum += i;
            i++;
        }
        System.out.println("1 ~ random2까지의 더한 결과 : " + sum);
    }
cs

 

 

 

번외) 로또번호 뽑기

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
public void method5() {
        
        // 로또 규칙
        // 번호 범위 : 1 ~ 45
        // 6개 선택
        
        int[] rotto = new int[6];
            //6개의 인덱스를 갖고있는 배열을 생성
        
        // (int)(Math.random() * 몇개의 랜덤값) + 시작수
        // random 1 ~ 45
        
        // rotto[0] = (int)(Math.random() * 45) + 1
        // rotto[1]
        // rotto[2]
        // 
        // ...rotto[5]
        // 
                
        int i = 0;
        while(i < 6) {
            rotto[i] = (int)(Math.random() * 45+ 1;
            //i의 값이, 즉 rotto의 인덱스 값이 바뀔때마다 새로운 랜덤값이 저장된다.
            i++;
        }
        
        // Arrays.toString(배열이름);
        System.out.println(Arrays.toString(rotto));
    }                          // 배열내용값을 출력해주는 메소드 
    
}
cs

 

'*JAVA*' 카테고리의 다른 글

[java] 분기문 - break  (0) 2021.10.20
[java] do-while문  (0) 2021.10.20
[java] While문  (0) 2021.10.20
[java] 반복문 - for문  (0) 2021.10.19
[java] 조건문 - Switch문  (0) 2021.10.19