public void chooseFlight(ArrayList<Flight> flightList) {
System.out.println("Choose flight by ID: ");
int pickedFlight = scanner.nextInt();
scanner.nextLine();
for (Flight tempFlight : flightList) {
if (pickedFlight == tempFlight.getId()) {
System.out.println("You picked flight from: " + tempFlight.getFrom() + ", to "
+ tempFlight.getTo() + ". Prices are: | Economic class: "
+ tempFlight.getPriceForEconomicClass() + " | Business class : "
+ tempFlight.getPriceForBusinessClass() + " | First class: "
+ tempFlight.getPriceForFirstClass());
selectedFlight = tempFlight;
break;
} else {
System.out.println("Flight ID doesnt exist");
}
System.exit(0);
}
}
我就是这样保存航班的:
Flight flight1 = new Flight(1, "Moscow", "Belgrade", 300, 600, 850, "gC49");
Flight flight2 = new Flight(2, "Paris", "Dortmund", 250, 290, 400, "soe4");
Flight flight3 = new Flight(3, "Podgorica", "Nis", 25, 40, 80, "sx33");
Flight flight4 = new Flight(4, "London", "Miami", 600, 1500, 2500, "zcl3");
ArrayList<Flight> flightsArrayList = new ArrayList<>();
flightsArrayList.add(flight1);
flightsArrayList.add(flight2);
flightsArrayList.add(flight3);
flightsArrayList.add(flight4);
运行上面的第一个方法后的输出是如果我输入了除1号以外的任何ID
航班ID不存在
尽管我输入了与航班ID匹配的ID。
} else {
System.out.println("Flight ID doesnt exist");
}
System.exit(0);
程序运行良好,我只是不知道哪里是我的错误。
for (Flight tempFlight : flightList) {
if (pickedFlight == tempFlight.getId()) {
System.out.println("You picked flight from: " + tempFlight.getFrom() + ", to "
+ tempFlight.getTo() + ". Prices are: | Economic class: "
+ tempFlight.getPriceForEconomicClass() + " | Business class : "
+ tempFlight.getPriceForBusinessClass() + " | First class: "
+ tempFlight.getPriceForFirstClass());
selectedFlight = tempFlight;
break;
} else {
System.out.println("Flight ID doesnt exist");
}
System.exit(0);
}
您的问题似乎是一个范围问题:
对于您检查的每个元素,如果没有找到,则打印该消息,在循环结束时,您调用system.exit(0);,这意味着您只检查列表的第一个元素。
您需要执行以下操作:
boolean found = false;
for (Flight tempFlight : flightList) {
if (pickedFlight == tempFlight.getId()) {
System.out.println("You picked flight from: " + tempFlight.getFrom() + ", to "
+ tempFlight.getTo() + ". Prices are: | Economic class: "
+ tempFlight.getPriceForEconomicClass() + " | Business class : "
+ tempFlight.getPriceForBusinessClass() + " | First class: "
+ tempFlight.getPriceForFirstClass());
found = true;
break;
}
} // this ends the for loop
if ( found ) {
// you actually found the Flight
} else {
System.out.println("Flight ID doesnt exist");
}
System.exit(0);
Flight found = null;
for (Flight tempFlight : flightList) {
if (pickedFlight == tempFlight.getId()) {
System.out.println("You picked flight from: " + tempFlight.getFrom() + ", to "
+ tempFlight.getTo() + ". Prices are: | Economic class: "
+ tempFlight.getPriceForEconomicClass() + " | Business class : "
+ tempFlight.getPriceForBusinessClass() + " | First class: "
+ tempFlight.getPriceForFirstClass());
Flight = tempFlight;
break;
}
} // this ends the for loop
if ( found != null ) {
// you actually found the Flight
} else {
System.out.println("Flight ID doesnt exist");
}
System.exit(0);
我试图检查用户是否输入了字符串。如果用户输入了字符串,我的程序应该输出错误消息。如果用户输入了整数,我的程序应该继续运行 这是我到目前为止的代码,我需要添加另一个条件来检查用户是否输入字符串,我尝试了一些方法,但它们不起作用
问题内容: 我试图通过限制用户可以输入的内容来使用户输入不使程序崩溃,例如: 只是一个int 在1到30之间 我编写的代码只能在一定程度上起作用。如果您输入的内容不是整数,它将对其进行检查并要求您再次输入。如果您继续输入除int以外的任何内容,则再次输入。我还有另一个while循环,如果它确实输入一个int,并且它在1-30区域之外,则它将要求用户再次输入。但是,此后,如果用户键入另一个“除int
问题内容: 我正在学习“困难方式” Python35。下面是原始代码,我们被要求对其进行更改,以便它可以接受其中不包含0和1的数字。 这是我的解决方案,可以很好地运行并识别浮点值: 通过搜索类似的问题,我找到了一些答案,这些答案可以帮助我编写另一个解决方案,如下面的代码所示。问题是,使用isdigit()不允许用户输入浮点值。因此,如果用户说要取50.5%,它将告诉他们学习如何键入数字。否则它适用
我正在做一个简单的程序,要求用户输入0-19之间的五个数字。我想在每个数字后面添加一些东西(比如if语句),以确保它在这个范围内。如果不是,程序应该说“请再读指令”,然后system.exit(0)。这段代码是相关的: 如有任何帮助,将不胜感激。
问题内容: 我有一个简单的PHP邮件程序脚本,该脚本从通过POST提交的表单中获取值并将其邮寄给我: 如何清除输入内容? 问题答案: 用清理发布变量。 这里的例子。喜欢:
如果找到manager用户,则将表设置为可编辑,并执行以下操作: