我正在用Java编写战舰副本。我有一个标准的Ship类,该类具有一个构造函数,该构造函数接收用户的输入。

船上有一个有效的布尔字段,该字段是在构造船对象之后计算的。

我想继续实例化Ship直到有效,但是编译器向我抛出“找不到符号(patrolBoats)”。为什么?我该如何解决?

do {
    Ship patrolBoat = new Ship(2, "Patrol Boat", promptInputForEnds("Patrol Boat", 2, kboard));
} while (patrolBoat.valid);

最佳答案

您在循环内声明了patrolBoat变量,因此它不在while语句的范围内。

在循环前声明Ship patrolBoat

Ship patrolBoat;
do {
  patrolBoat = ...
} while (patrolBoat.valid);

08-25 01:41