Programming/Java

[자바/Java] 메소드3 - Math 클래스

코딩하는 랄로 2023. 9. 28. 22:51
반응형

Math 클래스

자바에서는 기본적으로 제공하는 여러 객체들이 있다. 여기서 주목할 점은 클래스가 아닌 이미 클래스로 생성된 객체를 제공하기 때문에 별다른 선언없이 바로 사용할 수 있다는 점이다.

 

이렇게 기본적으로 제공되는 객체들은 여러 편리한 기능을 제공하고 있기 때문에 잘 활용할 경우, 여러 복잡한 작업들을 간단하게 작성할 수 있기 때문에 코드도 간결해진다.

 

그 중에 올림, 내림, 반올림 등 여러 수와 관련된 연산을 수행하는 메소드를 모아놓은 Math 클래스는 유용하게 사용되는 자바의 클래스 중 하나이다.

 

이번 글에서는 Math 클래스에서 자주 사용하는 메소드에 대해서 알아보겠다.

 

 

 

난수 발생시키기

난수란, 쉽게 말하여 무작위로 발생시킨 수이다. 자바의  Math 클래스에는 난수를 발생시키기 위한 메소드를 제공하고 있다. 사용방법으로는 다음과 같이,

 

double rand = Math.random();

 

Math.random()를 호출하여 사용하고 이 때에 리턴 값은 0.0과 1.0 사이의 무작위 double값을 반환한다. 만약, 이 메소드를 이용하여 1에서 10까지의 정수를 무작위로 int형 타입의 변수 num에 저장하고 싶다면 다음과 같이 코드를 작성할 수 있다.

 

int num = (int)(Math.random() * 9) + 1;

 

Math.random() * 9를 하게 되면 발생하게 되는 난수의 범위가 0.0~1.0에서 0.0~9.0으로 변경하게 되고 이를 casting을 이용하여 소수점을 날려버리고 1을 더하게 되면 난수의 범위가 1~10으로 변경이 되는 것이다.

 

이러한 방식을 이용한다면 여러 범위의 난수를 발생시킬 수 있다. 

 

 

Random 클래스

자바에서 난수를 발생시키는 여러 메소드를 제공하는 Random 클래스가 있다. 객체 형태로 기본적으로 제공 되는 것이 아니기 때문에 해당 클래스를 import하여 객체를 생성하여 주어야 한다.

 

import java.util.Random;

Random random = new Random();

 

Random 클래스의 메소드를 사용하여 1에서 10까지의 난수를 발생시키기 위해서는 nextInt() 메소드를 사용하여 구현할 수 있다.

 

int num = random.nextInt(9) + 1; nextInt(int) -> 0에서 넘겨받은 int까지 난수 생성

 

그 외에도 난수와 관련된 여러 메소드를 제공하고 있다.

 

 

 

올림 / 내림 / 반올림

Math 클래스에서는 double형 변수를 올림, 내림, 반올림한 정수를 반환하는 메소드도 제공을 한다. 사용방법으로는 각 해당 메소드의 매개변수로 double형 타입의 수를 넘겨주면 된다.

 

double num = 1.5;

//올림
int ceilNum = Math.ceil(num) // 2

//내림
int floorNum = Math.floor(num) // 1

//반올림
int roundNum = Math.round(num) // 2

 

 

 

 

최댓값 / 최솟값

Math 클래스에는 최댓값, 최솟값을 구해주는 메소드도 제공해준다. 사용방법으로는 두 개의 수를 파라미터로 넘겨 받아 두 수 중 큰 수를 반환하여 준다.

 

int n1 = 10;
int n2 = 20;

//두 수 비교
int maxTwo = Math.max(n1, n2);  //20
int minTwo = Math.min(n1, n2);  //10


//세 수 비교
int n3 = 30;
int maxThree = Math.max(Math.max(n1, n2), n3);  //30
int minThree = Math.min(Math.min(n1, n2), n3);  //10

 

위의 예시에서 알 수 있듯이, 삼항 연산자를 사용하지 않고도 간결하게 세 수 중 가장 큰수, 가장 작은 수를 구할 수 있다.

 

 

 

반응형