模拟向货船上逐一装载货物,如果货船装载某一货物后超重,那么货船认为这是一个异常,将拒绝装载该货物,但无论是否发生异常,货船都会在三点启航。货物数量为5,将货物放置在数组中,货物重量随机(大于200而小于500),货船最大载重1000,使用带finially子语句的try-catch语句进行编程,同时使用while语句对try-catch语句进行判定
时间: 2023-08-10 13:08:51 浏览: 76
Java 舰船模拟
下面是一个简单的实现:
```java
import java.util.Random;
public class CargoShip {
public static void main(String[] args) {
int[] cargo = new int[5];
Random random = new Random();
int totalWeight = 0;
// 向货船逐一装载货物
for (int i = 0; i < cargo.length; i++) {
cargo[i] = random.nextInt(300) + 200;
System.out.println("货物 " + (i+1) + " 的重量为:" + cargo[i]);
try {
totalWeight += cargo[i];
if (totalWeight > 1000) {
throw new Exception("货船超重,拒绝装载该货物");
}
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println("货物 " + (i+1) + " 装载失败");
continue;
} finally {
System.out.println("货物 " + (i+1) + " 装载完成");
}
}
// 货船在三点启航
System.out.println("货船在三点启航");
}
}
```
在上面的代码中,我们使用了一个 `totalWeight` 变量来记录当前货船已经装载的货物总重量。每次向货船上装载新的货物之前,都会先把新货物的重量加到 `totalWeight` 上,并判断是否超过了货船的最大载重。如果超过了最大载重,就抛出一个异常,表示货船不能继续装载该货物。
在 `try` 块中,我们把每个货物的重量加到 `totalWeight` 上,并判断是否超重。如果超重,就抛出一个异常。在 `catch` 块中,我们捕获上面可能抛出的异常,并输出错误信息。在 `finally` 块中,我们输出一个装载完成的提示信息,无论是否发生异常,都会执行 `finally` 块中的代码。
最后,在 `for` 循环结束后,我们输出一个货船启航的提示信息。
阅读全文