轨道
/
Java
Java
/
练习
/
汽车,组装!
汽车,组装!

汽车,组装!

学习练习

简介

数字

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 有两种数值转换:

  1. 隐式转换:不会丢失数据,也不需要额外的语法。
  2. 显式转换:可能会丢失数据,需要以_强制类型转换_的形式添加额外的语法。

由于int的精度低于double,从int转换为double是安全的,因此属于隐式转换。然而,从double转换为int可能会丢失数据,因此需要显式转换。

if-else 语句

if-then 语句

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-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%。

你有两项任务。

1. 计算每小时的生产率

实现CarsAssemble.productionRatePerHour()方法,计算装配线每小时的生产率,同时考虑装配线当前的速度和成功率:

CarsAssemble.productionRatePerHour(6)
// => 1193.4

注意,返回值是double类型。

2. 计算每分钟生产的可用汽车数量

实现CarsAssemble.workingItemsPerMinute()方法,计算每分钟生产多少辆可用的汽车:

CarsAssemble.workingItemsPerMinute(6)
// => 19

注意,返回值是int类型。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Java Exercism

准备好开始 汽车,组装! 了吗?

注册 Exercism,借助 26 个概念158 个练习 和真人导师指导,学习并掌握 Java,全部免费。