본문 바로가기

Mentoring

Metoring 첫번째 과제 UpDown 게임 만들기_ Random 함수에 대해

728x90

코드 링크 : https://github.com/KimGenius/MentoringWhatIsRandom

자바를 기준으로 랜덤을 설명하자면

자바의 랜덤은 매우 심플하고 간단하고 쉽게 되어있습니다


기본적으로 Random클래스를 제공해서 쉽게 사용이 가능하죠

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
import java.util.Random;
 
public class RanRanRandom {
    public static void main(String[] args) {
        Random random = new Random();
        System.out.println(random.nextInt());
        System.out.println(random.nextBoolean());
        System.out.println(random.nextDouble());
        System.out.println(random.nextFloat());
        System.out.println(random.nextLong());
        /*
            -1722874644
            false
            0.8459281808889022
            0.20337558
            -2619405380161169206
         */
        System.out.println(random.nextInt(10));
        //0~9
        System.out.println(random.nextInt(10+ 1);
        //1~10
        System.out.println(random.nextInt(10+ 5);
        //5~14
        System.out.println(random.nextInt(7+ 2);
        //2~8
    }
}
cs

이 코드를 보면 간단하게 랜덤을 사용한 것을 볼 수 있습니다

Random 클래스는 java.util 내부에 있고 import하여 사용이 가능합니다


먼저 Random클래스의 객체를 선언합니다. (5번째 줄)

그리고 가장 심플하게 할 수 있는 next~~ 함수가 있죠

정말 간단합니다

random.nextInt 는 말 그대로 int 형태로 랜덤 슝슝 뽑아줍니다

random.nextBoolean 은 true false 중 하나를 뽑아주죠

이런식으로 next형태로 사용할 수 있습니다.


자 그러면 원하는 형태는 된거같고 원하는 범위는 어떻게 할까요?

간단하게 Int로 설명해볼게요(18번째 줄부터)

먼저 매개변수를 하나 주면 0~n-1 값으로 측정됩니다.

즉 0부터 몇개를 범위로 할것이냐 라는거죠

18번째 줄에서 10으로 했으니 0~10-1 즉 0~9가 범위가 됩니다.


1부터 시작하고 싶으면 어떻게하냐? 그냥 +1 해주면 됩니다

그럼 자동으로 범위가 0~n에서 +1씩 하면 0+1~n+1 즉 1~n+1이 되죠


그럼 원하는 범위 즉 n~n`까지는 어떻게 할까요?

이때 아주 쉬운 공식이 있습니다

nextInt(n`-n+1) + n

이 공식이 뭐냐면

n은 시작할 숫자

n`은 끝 숫자입니다.

예를 들어서 5~10까지 하고싶다면

nextInt(10-5+1) + 5 이죠

정말 간단합니다


그럼 끝

반응형