본문 바로가기
Dev/Java

05-1. 다양한 함수(Math.random)

by YoonYeoJin 2023. 7. 25.

자바를 배우면서 무작위 숫자를 발생시키는 방법을 배웠던 적이 있다.

그와 더불어서 혹 필요할만한 함수들을 배운적이 있는데

오늘은 그 중에서 Math.random()의 기능에 대해서 알아보려고 한다.

 

0. Math클래스의 특징

Math 클래스의 특징은 모든 필드가 상수필드이다.

즉, 필드가 선언될 때 사진과 같이 final 키워드가 사용됨을 알 수 있다.

 

또한 모든 메소드가 static 메소드로 사용될 때 바로 메모리에 영역에 올라가서 사용을 할 수 있다.

 

1. random()

첫번째로 알아볼 메소드는 random이다.

random()은 0.0 ~ 0.999.. 까지의 수를 랜덤으로 발생시키는 메소드이다.

즉, double형으로 발생시키기 때문에 우리가 사용하기 위해서는 int로 강제 형변환을 시켜줘야함을 알 수 있다.

random() 메소드를 기억해보기 위해서 사용한 첫번째 예시는 

1~10까지 랜덤으로 3개의 값 출력하기이다.

코드를 살펴보면 다음과 같다

 

Math.random() 뒤에 10을 곱하고 1을 더해준 것을 확인할 수 있는데

이유를 살펴보면 간단하다.

Math.random()은 0.0~0.999..의 사이의 수를 랜덤으로 발생시키는데

순서대로 살펴보자면 10을 곱하게 되면 숫자의 범위는

0.0 ~ 9.999...가 된다

여기서 1을 더하게 되면 1.0 ~ 10.999...가 되는데 random()은 double형을 반환하기 때문에 int 형으로 강제형변환을 하게 되면

우리가 원하는 값인 1 ~ 10이 되게 된다.

결과적으로 3개의 난수를 발생시키는 것을 확인할 수 있다.

 

다음은 두번째 예시이다.

우리가 흔히 볼 수 있는 로또 번호 생성기를 만들어 볼 것이다.

사진과 같이 무작위인 숫자 6개가 뽑힌 걸 볼 수 있다.

이 random()메소드를 사용할 때에는 같은 숫자가 나올수도 있으니까 꼭 조건문을 사용해서 같은 숫자가 나오는 것을 방지하는 것도 중요한 것 같다.

 

 

random() 외에도 ceil, round, abs등등 다양한 Math클래스의 메소드들이 있기도 하지만 오늘은 random에 대해서만 알아보고 다음에는 String과 관련된 메소드를 이어서 알아보려고한다.

'Dev > Java' 카테고리의 다른 글

06.StringTokenizer  (1) 2023.07.27
05-2. 다양한 함수(String 관련)  (0) 2023.07.25
04-2.ArrayCopy(깊은 복사)  (0) 2023.07.17
04-1.ArrayCopy (얕은 복사)  (0) 2023.07.17
03. continue  (0) 2023.07.12