Math 클래스
절댓값
'절댓값(Absolute Value)' a의 절댓값은 a와 0 사이의 거리라고 생각하면 된다.
a >= 0일 경우에 a의 절댓값은 그냥 a이고, a < 0일 경우에 a의 절댓값은 -a입니다.
import java.lang.Math;
public class Driver {
public static void main(String[] args) {
System.out.println(Math.abs(-10));
System.out.println(Math.abs(8));
}
}
10
8
최솟값, 최댓값
Math 클래스에는 최솟값과 최댓값을 구해주는 max 메소드와 min 메소드가 있다.
import java.lang.Math;
public class Driver {
public static void main(String[] args) {
System.out.println(Math.min(4, 10)); // 최솟값
System.out.println(Math.max(4, 10)); // 최댓값
}
}
4
10
Random 클래스
임의의 값을 받아오기 위해서는 Random 클래스를 import 해야 한다.
그런데 Math와는 달리 Random은 인스턴스를 생성해서 사용해야 한다.
0 이상 n 이하의 랜덤 값을 받아오려면 Random 클래스에 있는 nextInt 메소드를 사용해보자.
import java.util.Random;
public class Driver {
public static void main(String[] args) {
Random rand = new Random();
System.out.println(rand.nextInt(10)); // 0 이상 9 이하의 랜덤한 값
}
}
a와 b 사이의 랜덤 값
a이상 b이하의 랜덤 값을 받아오려면 아래와 같이 코드를 작성해 주면 된다.
import java.util.Random;
public class Driver {
public static void main(String[] args) {
Random rand = new Random();
int min = 10;
int max = 30;
System.out.println(rand.nextInt((max - min) + 1) + min); // 10 이상 30 이하의 랜덤한 값
}
}
> ((max - min) + 1)의 코드가 0 ~ 20을 출력하고 거기에 + min(+10)을 해줌으로써 10 ~ 30 사이의 값이 나온다.
조금 더 풀어서 설명하면..
> rand.nextInt(max)만 입력하면 30 미만, 즉 0 - 29 사이의 값이 나오게 된다.
> rand.nextInt(max - min)을 입력하면 rand.nextInt(20)이므로 0 - 19 사이의 값이 나오게 된다.
> 파라미터에 1을 더하여 rand.nextInt(max - min + 1)하시면 rand.nextInt(21)이므로 0 - 20 사이의 값이 나오게 된다.
> rand.nextInt(max - min + 1) + min을 입력하면 0 - 20 사이의 값 에 10을 더한 것이니, 10 - 30 사이의 값(양 끝 값 포함)이 나오게 된다.
'TIL > Java' 카테고리의 다른 글
[Java] 김신 장군 살리기 (0) | 2022.01.11 |
---|---|
[Java] Wrapper Class / Array List (0) | 2022.01.10 |
[Java] String 클래스(대소문자 변환, 문자열비교_equals) (0) | 2022.01.10 |
[Java] 단위 변환기 (0) | 2022.01.08 |
[Java] 인스턴스 메소드 vs 클래스 메소드 (0) | 2022.01.07 |