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子句中的条件求值为false时,if-then-else 语句会提供一条替代的执行路径。这条替代执行路径跟在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类型。