Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何在这里实现多次尝试_Java - Fatal编程技术网

Java 我如何在这里实现多次尝试

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

我问用户是否有促销代码,如果有,我给他机会输入,我想让他有3次正确的输入尝试

我就是这样尝试的:

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);
        }
    }
}