Java에는 두 가지 종류의 숫자가 있어요.
-6, 0, 1, 25, 976, -500000 등이 있어요.-20.4, 0.1, 2.72, 16.984025, 1024.0 등이 있어요.Java에서 가장 흔히 쓰는 숫자 타입은 int와 double이에요.
int는 32비트 정수이고, double은 64비트 실수예요.
산술 계산에는 표준 산술 연산자를 사용해요.
숫자는 표준 숫자 비교 연산자(예: 5 > 4, 4 <= 5)와 동등(==) 및 비동등(!=) 연산자로 비교할 수 있어요.
Java에는 두 가지 숫자 변환 방식이 있어요.
int는 double보다 정밀도가 낮기 때문에, int를 double로 변환하는 것은 안전하고 따라서 암시적 변환이에요.
반면 double을 int로 변환하면 데이터가 손실될 수 있어서 명시적 변환이 필요해요.
Java에서 가장 기본적인 제어 흐름 문은 if-then 문이에요.
이 문은 특정 조건이 true일 때만 코드의 일부분을 실행할 때 사용해요.
if-then 문은 if 절을 사용해 정의해요.
class Car {
void drive() {
// the "if" clause: the car needs to have fuel left to drive
if (fuel > 0) {
// the "then" clause: the car drives, consuming fuel
fuel--;
}
}
}
위 예제에서 차에 연료가 없으면, Car.drive 메서드를 호출해도 아무 일도 일어나지 않아요.
if-then-else 문은 if 절의 조건이 false로 평가될 때 실행할 다른 경로를 제공해요.
이 대체 실행 경로는 if 절 뒤에 오며, else 절로 정의해요.
class Car {
void drive() {
if (fuel > 0) {
fuel--;
} else {
stop();
}
}
}
위 예제에서 차에 연료가 없으면, Car.drive 메서드를 호출하면 차를 멈추는 다른 메서드를 호출해요.
if-then-else 문은 else if 절을 사용해 여러 조건을 지원하기도 해요.
class Car {
void drive() {
if (fuel > 5) {
fuel--;
} else if (fuel > 0) {
turnOnFuelLight();
fuel--;
} else {
stop();
}
}
}
위 예제에서 연료가 5 이하일 때 차를 운전하면 차는 계속 달리지만, 연료 경고등이 켜져요.
연료가 0이 되면 차는 멈춰요.
이 연습 문제에서는 자동차 공장 조립 라인의 생산을 분석하는 코드를 작성해요. 조립 라인의 속도는 0(꺼짐)부터 10(최대)까지 설정할 수 있어요.
가장 낮은 속도인 1에서는 시간당 221대의 자동차가 생산돼요. 생산량은 속도에 비례해서 선형으로 증가해요. 그래서 속도를 4로 설정하면 시간당 4 * 221 = 884대의 자동차를 생산해야 해요. 하지만 속도가 높아질수록 불량 자동차가 생산될 가능성도 커지고, 그런 자동차는 폐기해야 해요. 다음 표는 속도가 성공률에 어떤 영향을 주는지 보여줘요.
1부터 4까지: 성공률 100%.5부터 8까지: 성공률 90%.9: 성공률 80%.10: 성공률 77%.해야 할 작업이 두 가지 있어요.
CarsAssemble.productionRatePerHour() 메서드를 구현해서 현재 조립 라인의 속도와 성공률을 고려한 시간당 생산량을 계산해요:
CarsAssemble.productionRatePerHour(6)
// => 1193.4
반환되는 값은 double이라는 점을 기억해요.
CarsAssemble.workingItemsPerMinute() 메서드를 구현해서 분당 정상 자동차가 몇 대 생산되는지 계산해요:
CarsAssemble.workingItemsPerMinute(6)
// => 19
반환되는 값은 int라는 점을 기억해요.
Exercism에 가입하고 Java 트랙을 개념 26개연습 문제 158개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.