这是为了课程作业。我已经构建了整个程序,它做的一切都是正确的,除了这一件事。
我有一个名为“Schedule”的类,这个方法在计划的最后:
public void bookSeatMenu()
{ boolean leaveBookSeatMenu = false;
String seatBookingMenuStr;
int seatBookingMenuInt = 14;
boolean isInteger = false;
Scanner input = new Scanner(System.in);
System.out.println("Press 1 to add an individual booking, 2 to cancel a booked seat or 3 to go back");
seatBookingMenuStr = input.nextLine();
try {
seatBookingMenuInt = Integer.parseInt(seatBookingMenuStr);
isInteger = true;
}
catch (NumberFormatException e) {
}
switch (seatBookingMenuInt) {
case 1:
bookSeat();
break;
case 2:
cancelSeat();
break;
case 3:
leaveBookSeatMenu = true;
break;
default:
System.out.println("Invalid Choice");
} while (leaveBookSeatMenu == false);
}
我知道你们都知道切换菜单的样子,但我想我还是把它扔在那里,以防万一(请原谅双关语)我在这里出错了。
继续前进,我有bookSeat
方法,这是用户预订座位的地方(效果很好)。然后它显示它bookSeatMenu()
只是显示菜单。但是,它不会回到上一个。
public void bookSeat()
{
Scanner input = new Scanner(System.in);
boolean isSeatBooked = true;
showSeatPlan();
int seatNum = 0;
int rowNum = 90;
int columnNum = 16;
boolean isInt = false;
while (isSeatBooked == true)
{
System.out.println("Please pick column of a seat to book");
columnNum = input.nextInt();
System.out.println("Please pick row of a seat to book");
rowNum = input.nextInt();
seatNum = (columnNum + ((rowNum) * 15));
if (seats[seatNum] == false)
{
isSeatBooked = false;
}
else
{
System.out.println("This seat is already booked");
}
}
seats[seatNum] = true;
System.out.println("");
bookSeatMenu();
}
现在不是为了爱也不是为了钱,我不能让它在预订座位后回到之前的菜单。
基本上流程是:
预订座位 --> 前往 bookSeatMenu --> 按 4 返回 --> 到达上一个菜单。
如果我不预订座位,程序会很高兴地回到之前的菜单,但之后,它只是继续在命令提示符下换行,不做任何其他事情,没有错误等。
我很想说这可能是 BlueJ 的问题,尽管一个糟糕的工人会责怪他的工具,我不想成为“那个人”
我还需要做一个“测试课”——以前从未使用过“测试课”,而任务要求我们去看看没人费心去买的“教科书”,我真的不知道!