// Add a New Ship
public static void addShip() {
// complete this method
Scanner scan = new Scanner(System.in);
System.out.println("Enter new Ship name: "); // Ask for ship name
String shipName = scan.nextLine();
System.out.print("Balcony: "); // How many Balcony suites
int balcony = scan.nextInt();
System.out.print("Ocean View:"); // How many Ocean view suites
int oceanView = scan.nextInt();
System.out.print("Room Suite: ");
int roomSuite = scan.nextInt();
System.out.print("Room Interior: ");
int roomInterior = scan.nextInt();
**int y = 1;
do {
try {
System.out.print("In Service: ");
boolean inService = scan.nextBoolean(); // Ask if the ship is in service
y=2;
}
catch(Exception e) {
System.out.println("Please enter true if ship is in service.");
System.out.println("or");
System.out.print("False if ship is not in service");
}
} while (y==1);
scan.nextLine();
shipList.add(new Ship(shipName, balcony, oceanView, roomSuite, roomInterior, inService)); //this is the inService error I am referring to
}**
Жирным шрифтом выделено место, где у меня возникли проблемы (начиная со строки 19 и заканчивая 36). Сначала я пытался сделать свое логическое «да» или «нет» вместо истинного или ложного. Когда я не смог это понять, я решил попробовать поймать, чтобы пользователь мог ввести истину или ложь. Произошли две вещи. 1-я переменная inService в строке 36 теперь говорит, что это не может быть разрешено. Поэтому я использовал предложение eclipse и создал поле для inService. Когда я запустил программу и дошел до этой части, l oop никогда не останавливался, мне пришлось отключить консоль вручную. убедитесь, что пользователь не ввел строку типа «три» вместо «3». Я собирался использовать тот же метод, но не могу заставить его работать.
Любая помощь или совет будут очень благодарны.