Java 我如何在这里实现多次尝试
我问用户是否有促销代码,如果有,我给他机会输入,我想让他有3次正确的输入尝试 我就是这样尝试的:Java 我如何在这里实现多次尝试,java,Java,我问用户是否有促销代码,如果有,我给他机会输入,我想让他有3次正确的输入尝试 我就是这样尝试的: public void chooseClassAndPromoCode(ArrayList<Flight> flightList) { System.out.println("Pick which class do you want? (1 - economic, 2 - business, 3 - first class)"); int userFl
public void chooseClassAndPromoCode(ArrayList<Flight> flightList) {
System.out.println("Pick which class do you want? (1 - economic, 2 - business, 3 - first class)");
int userFlightClass = scanner.nextInt();
scanner.nextLine();
System.out.println("Do you have promo code? (yes / no )");
String yesNoPromoCode = scanner.nextLine();
int attempts = 3;
if (yesNoPromoCode.equalsIgnoreCase("yes")) {
System.out.println("Enter promo code");
String userPromoCode = scanner.nextLine();
while (attempts-- > 0) {
if (userPromoCode.equals(selectedFlight.getPromoCode()) && userFlightClass == 1) {
System.out.println("Price for economic class is: " + selectedFlight.getPriceForEconomicClass());
// System.out.println("Promo code is valid. You have discount of: 20%, new price is: " + discountEconomyClass());
System.out.println("Balance of: " + selectedPassenger.getFirstName() + " is: " + selectedPassenger.getBalance());
// payingEconomicClassWithPromoCode(flightList);
} else {
System.out.println("Incorrent. Number of atempts: " + attempts);
}
}
}
}
只需修复
userPromoCode
扫描仪的位置,它应该在while
中
public void chooseClassAndPromoCode(ArrayList<Flight> flightList) {
System.out.println("Pick which class do you want? (1 - economic, 2 - business, 3 - first class)");
int userFlightClass = scanner.nextInt();
scanner.nextLine();
System.out.println("Do you have promo code? (yes / no )");
String yesNoPromoCode = scanner.nextLine();
int attempts = 3;
String userPromoCode = ""
if (yesNoPromoCode.equalsIgnoreCase("yes")) {
while (attempts-- > 0) {
System.out.println("Enter promo code");
userPromoCode = scanner.nextLine();
if (userPromoCode.equals(selectedFlight.getPromoCode()) && userFlightClass == 1) {
System.out.println("Price for economic class is: " + selectedFlight.getPriceForEconomicClass());
// System.out.println("Promo code is valid. You have discount of: 20%, new price is: " + discountEconomyClass());
System.out.println("Balance of: " + selectedPassenger.getFirstName() + " is: " + selectedPassenger.getBalance());
// payingEconomicClassWithPromoCode(flightList);
break;
} else {
System.out.println("Incorrent. Number of atempts: " + attempts);
}
}
}
public void选择ClasssandPromoCode(ArrayList飞行列表){
println(“选择您想要哪一类?(1-经济舱,2-商务舱,3-头等舱)”;
int userFlightClass=scanner.nextInt();
scanner.nextLine();
System.out.println(“您有促销代码吗?(是/否)”);
字符串yesNoPromoCode=scanner.nextLine();
int=3;
字符串userPromoCode=“”
如果(是PromoCode.equalsIgnoreCase(“是”)){
同时(尝试-->0){
System.out.println(“输入促销代码”);
userPromoCode=scanner.nextLine();
if(userPromoCode.equals(selectedFlight.getPromoCode())&&userFlightClass==1){
System.out.println(“经济舱的价格为:+selectedFlight.getPriceForEconomicClass());
//System.out.println(“促销代码有效,折扣为:20%,新价格为:“+DiscountEnteconomyClass()”);
System.out.println(“余额:“+selectedPassenger.getFirstName()”是:“+selectedPassenger.getBalance()”);
//使用促销代码支付经济舱(航班列表);
打破
}否则{
System.out.println(“不一致的atempts数量:+尝试次数”);
}
}
}
}您的实际问题是什么?什么东西不能像你希望的那样工作?期望输出和实际输出的区别是什么?将您的代码输入while循环中的促销代码。你需要添加一个中断,这样当有一个好的代码时,你就可以跳出循环。你在开始时只从用户那里获得一次输入。当循环运行时,它会反复使用相同的输入进行检查,而不会给用户重试的机会。
public void chooseClassAndPromoCode(ArrayList<Flight> flightList) {
System.out.println("Pick which class do you want? (1 - economic, 2 - business, 3 - first class)");
int userFlightClass = scanner.nextInt();
scanner.nextLine();
System.out.println("Do you have promo code? (yes / no )");
String yesNoPromoCode = scanner.nextLine();
int attempts = 3;
String userPromoCode = ""
if (yesNoPromoCode.equalsIgnoreCase("yes")) {
while (attempts-- > 0) {
System.out.println("Enter promo code");
userPromoCode = scanner.nextLine();
if (userPromoCode.equals(selectedFlight.getPromoCode()) && userFlightClass == 1) {
System.out.println("Price for economic class is: " + selectedFlight.getPriceForEconomicClass());
// System.out.println("Promo code is valid. You have discount of: 20%, new price is: " + discountEconomyClass());
System.out.println("Balance of: " + selectedPassenger.getFirstName() + " is: " + selectedPassenger.getBalance());
// payingEconomicClassWithPromoCode(flightList);
break;
} else {
System.out.println("Incorrent. Number of atempts: " + attempts);
}
}
}