Math 클래스 핵심
Math.abs, Math.pow, Math.sqrt, Math.random 및 자주 사용하는 다른 Math 메서드를 사용합니다.
Math 클래스 핵심은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Math 클래스
java.lang.Math 클래스는 일반적인 수학 연산을 위한 정적 유틸리티 메서드를 제공합니다. 항상 사용할 수 있으므로 import가 필요하지 않습니다.
절댓값과 부호
Math.abs()는 절댓값(음이 아닌 값)을 반환합니다. Math.signum()은 부호에 따라 -1.0, 0.0 또는 1.0을 반환합니다.
System.out.println(Math.abs(-42)); // 42
System.out.println(Math.abs(3.14)); // 3.14
System.out.println(Math.signum(-5.0)); // -1.0
System.out.println(Math.signum(0.0)); // 0.0
System.out.println(Math.signum(7.0)); // 1.0거듭제곱, 제곱근, 세제곱근
거듭제곱에는 Math.pow(base, exp), 제곱근에는 Math.sqrt(), 세제곱근에는 Math.cbrt()를 사용하십시오.
System.out.println(Math.pow(2, 10)); // 1024.0
System.out.println(Math.sqrt(144)); // 12.0
System.out.println(Math.cbrt(27)); // 3.0
// Hypotenuse of a right triangle (a=3, b=4)
double hyp = Math.sqrt(Math.pow(3, 2) + Math.pow(4, 2));
System.out.println(hyp); // 5.0최솟값, 최댓값, 범위 제한
Math.min()과 Math.max()는 두 값 중 더 작거나 큰 값을 반환합니다. 두 메서드를 조합하면 값이 특정 범위를 벗어나지 않도록 제한하는 기능을 구현할 수 있습니다.
int a = 10, b = 20;
System.out.println(Math.min(a, b)); // 10
System.out.println(Math.max(a, b)); // 20
// Clamp value between 0 and 100
int clamp(int value, int min, int max) {
return Math.max(min, Math.min(value, max));
}
System.out.println(clamp(150, 0, 100)); // 100
System.out.println(clamp(-5, 0, 100)); // 0
System.out.println(clamp(75, 0, 100)); // 75내림, 올림, 반올림
Math.floor()는 내림하고, Math.ceil()은 올림하며, Math.round()는 가장 가까운 정수로 반올림합니다(반올림할 숫자가 정확히 중간이면 올림).
double price = 9.3;
System.out.println(Math.floor(price)); // 9.0
System.out.println(Math.ceil(price)); // 10.0
System.out.println(Math.round(price)); // 9
double shipping = 3.5;
System.out.println(Math.round(shipping)); // 4 (half-up)
// Round to 2 decimal places
double tax = 7.5678;
double rounded = Math.round(tax * 100.0) / 100.0;
System.out.println(rounded); // 7.57로그와 지수 함수
Math.log()는 자연로그(밑이 e인 로그)를 계산하고, Math.log10()은 밑이 10인 로그를 계산하며, Math.exp()는 e^x를 계산합니다.
System.out.println(Math.log(Math.E)); // 1.0
System.out.println(Math.log10(1000)); // 3.0
System.out.println(Math.exp(1)); // 2.718281828...
// Change of base: log2(8)
double log2 = Math.log(8) / Math.log(2);
System.out.println(log2); // 3.0
// Compound interest: P * e^(r*t)
double principal = 1000, rate = 0.05, years = 10;
double amount = principal * Math.exp(rate * years);
System.out.printf("Amount: %.2f%n", amount); // 1648.72삼각 함수 메서드
Math는 라디안 단위의 각도를 받는 삼각 함수를 제공합니다. 도 단위를 라디안으로 변환하려면 Math.toRadians()를 사용하십시오.
double angle = Math.toRadians(45);
System.out.printf("sin(45): %.4f%n", Math.sin(angle)); // 0.7071
System.out.printf("cos(45): %.4f%n", Math.cos(angle)); // 0.7071
System.out.printf("tan(45): %.4f%n", Math.tan(angle)); // 1.0000
// Distance between two GPS coordinates (simplified)
double lat1 = Math.toRadians(40.7128);
double lat2 = Math.toRadians(34.0522);
double deltaLat = lat2 - lat1;
System.out.printf("Delta lat (rad): %.4f%n", deltaLat);난수
Math.random()은 [0.0, 1.0) 범위의 double을 반환합니다. 곱셈과 형변환을 사용하면 특정 범위의 정수를 얻을 수 있습니다. 더 나은 난수 생성이 필요하면 java.util.Random을 사용하는 것이 좋습니다.
// Random double [0.0, 1.0)
double rand = Math.random();
// Random int [min, max] inclusive
int min = 1, max = 6;
int dice = (int) (Math.random() * (max - min + 1)) + min;
System.out.println("Dice roll: " + dice); // 1–6
// Prefer java.util.Random for more features
import java.util.Random;
Random rng = new Random();
int secureRoll = rng.nextInt(6) + 1; // cleaner API
System.out.println("Secure roll: " + secureRoll);상수: PI와 E
Math.PI와 Math.E는 π와 오일러 수 e를 나타내는 double 상수입니다. 기하학적 계산과 재무 계산에 사용하십시오.
System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.E); // 2.718281828459045
// Circle area and circumference
double radius = 7.0;
double area = Math.PI * Math.pow(radius, 2);
double circumference = 2 * Math.PI * radius;
System.out.printf("Area: %.2f%n", area); // 153.94
System.out.printf("Circumference: %.2f%n", circumference); // 43.98Math.floorDiv와 Math.floorMod
Math.floorDiv()와 Math.floorMod()는 음수를 일관되게 처리합니다. 음수가 포함될 때 예상하지 못한 결과를 낼 수 있는 / 및 % 연산자와 다릅니다.
// Regular % can be negative with negative dividend
System.out.println(-7 % 3); // -1 (may surprise you)
System.out.println(Math.floorMod(-7, 3)); // 2 (always non-negative)
// Floor division rounds toward negative infinity
System.out.println(-7 / 3); // -2 (truncates toward zero)
System.out.println(Math.floorDiv(-7, 3)); // -3 (floors down)
// Use floorMod for cyclic calculations like days of week
int day = Math.floorMod(-1, 7); // Sunday (6), not -1
System.out.println(day); // 6실전: 거리와 물리학
삼각 함수와 제곱근을 사용하여 투사체의 사거리를 계산하는 물리 문제에 Math 메서드를 적용해 봅니다.
// Projectile range: R = v^2 * sin(2*angle) / g
double velocity = 50.0; // m/s
double angleDeg = 45.0; // degrees
double g = 9.81; // m/s^2
double angleRad = Math.toRadians(angleDeg);
double range = Math.pow(velocity, 2) * Math.sin(2 * angleRad) / g;
System.out.printf("Projectile range: %.1f m%n", range); // 254.8 m빠른 확인
Math.floorMod(-7, 3)의 출력은 무엇입니까?
복습: Math 클래스
핵심 정리:
- 기본 비교에는 Math.abs, Math.min, Math.max를 사용합니다
- 거듭제곱과 근의 계산에는 Math.pow, Math.sqrt, Math.cbrt를 사용합니다
- 반올림에는 Math.floor, Math.ceil, Math.round를 사용합니다
- 로그와 지수 함수에는 Math.log, Math.log10, Math.exp를 사용합니다
- Math.sin, Math.cos, Math.tan은 라디안을 사용하므로 Math.toRadians로 변환합니다
- Math.floorMod는 순환 산술에서 음수를 깔끔하게 처리합니다
- Math.PI와 Math.E는 기본 제공 상수입니다
자주 묻는 질문
“Math 클래스 핵심” 강의는 무료인가요?
네 — “Math 클래스 핵심” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Math 클래스 핵심”에서 뭘 배우나요?
Math.abs, Math.pow, Math.sqrt, Math.random 및 자주 사용하는 다른 Math 메서드를 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Java Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“Math 클래스 핵심” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.