编写一个程序,询问用户票数和输出总数
Write a program that will ask the user for the number of tickets and output total
编写一个程序,询问用户成人票的张数,儿童票的张数,是预留票还是普通票,是否有无线券可以使用。计算订单成本。
有两个级别的门票,预留票每张 55.00 美元或普通门票每张 35.00 美元。 12 岁以下儿童半价。
本地电台是运行一个特别的。如果你打电话,他们会寄给你一张优惠券,给你 20% 的折扣。
所有超过 200 美元的订单可享受最终价格 10% 的折扣(在应用其他折扣后),超过 400 美元的订单可享受 15% 的折扣。
到目前为止我的代码...
public static void main(String[] args) {
// variables
int adultTix;
int childTix;
int GENERAL_ADMISSION = 35;
int RESERVED = 55;
double radioDiscount = .20;
double ticketTotal = 0;
Scanner scan = new Scanner(System.in);
System.out.println("How many adult tickets?");
adultTix = scan.nextInt();
System.out.println("How many kids tickets?");
childTix = scan.nextInt();
scan.nextLine();
System.out.println("Reserved tickets are each and General Admission is ."
+ " Would you like Reserved or General Admission? (enter GA or RE only):");
String tixType = scan.nextLine();
if (tixType == "GA" || tixType == "ga")
ticketTotal = ((adultTix * GENERAL_ADMISSION) + ((childTix * GENERAL_ADMISSION) / 2));
else if (tixType == "RE" || tixType == "re")
ticketTotal = ((adultTix * RESERVED) + ((childTix * RESERVED) / 2));
System.out.println("Do you have a radio voucher? (enter yes or no):");
String radioQ = scan.nextLine();
if (radioQ == "yes")
System.out.print("With the radio discount, you will save 20%!");
if (radioQ == "no")
System.out.println("No radio discount.");
double radioT;
radioT = ((ticketTotal - (ticketTotal * radioDiscount)));
if (radioT >= 200 && radioT < 400)
System.out.println("With a 10% discount, your total is: $"
+ (radioT * .9));
else if (radioT > 400)
System.out.println("With a 15% discount, your total is: $"
+ (radioT * .85));
scan.close();
}
}
正确提出所有问题,但 return 没有输出。这是一个简单的 Java 程序,所以我想要最简单的答案
问题是您的 if
和 else
中的 none 正确触发,因为您比较的字符串不正确。
您到处都需要 if (str.equals("value"))
而不是 if (str == "value")
。如果您想要像 if (str == "value" || str == "VALUE")
这样不区分大小写的匹配,则需要 if (str.equalsIgnoreCase("value"))
。
请查看 How do I compare Strings in Java? 了解更多信息
几个问题:
在测试对象之间的相等性时,您应该始终使用 equals 方法,现在使用“==”,这意味着您正在比较两个对象引用。所以从
更改以下内容
if (tixType == "GA" || tixType == "ga")
有
if (tixType.equalsIgnoreCase("ga"))
其他字符串比较也一样。
在询问用户是否有radio voucher后,你应该只做与radio voucher相关的计算,如:
if (radioQ == "yes")//use equalsIgnoreCase method of String
System.out.print("With the radio discount, you will save 20%!");
radioT = ((ticketTotal - (ticketTotal * radioDiscount)));
if (radioT >= 200 && radioT < 400)
System.out.println("With a 10% discount, your total is: $"
+ (radioT * .9));
else if (radioT > 400)
System.out.println("With a 15% discount, your total is: $"
+ (radioT * .85));
//apply discount on ticket total?
} else ...
编写一个程序,询问用户成人票的张数,儿童票的张数,是预留票还是普通票,是否有无线券可以使用。计算订单成本。
有两个级别的门票,预留票每张 55.00 美元或普通门票每张 35.00 美元。 12 岁以下儿童半价。 本地电台是运行一个特别的。如果你打电话,他们会寄给你一张优惠券,给你 20% 的折扣。
所有超过 200 美元的订单可享受最终价格 10% 的折扣(在应用其他折扣后),超过 400 美元的订单可享受 15% 的折扣。
到目前为止我的代码...
public static void main(String[] args) {
// variables
int adultTix;
int childTix;
int GENERAL_ADMISSION = 35;
int RESERVED = 55;
double radioDiscount = .20;
double ticketTotal = 0;
Scanner scan = new Scanner(System.in);
System.out.println("How many adult tickets?");
adultTix = scan.nextInt();
System.out.println("How many kids tickets?");
childTix = scan.nextInt();
scan.nextLine();
System.out.println("Reserved tickets are each and General Admission is ."
+ " Would you like Reserved or General Admission? (enter GA or RE only):");
String tixType = scan.nextLine();
if (tixType == "GA" || tixType == "ga")
ticketTotal = ((adultTix * GENERAL_ADMISSION) + ((childTix * GENERAL_ADMISSION) / 2));
else if (tixType == "RE" || tixType == "re")
ticketTotal = ((adultTix * RESERVED) + ((childTix * RESERVED) / 2));
System.out.println("Do you have a radio voucher? (enter yes or no):");
String radioQ = scan.nextLine();
if (radioQ == "yes")
System.out.print("With the radio discount, you will save 20%!");
if (radioQ == "no")
System.out.println("No radio discount.");
double radioT;
radioT = ((ticketTotal - (ticketTotal * radioDiscount)));
if (radioT >= 200 && radioT < 400)
System.out.println("With a 10% discount, your total is: $"
+ (radioT * .9));
else if (radioT > 400)
System.out.println("With a 15% discount, your total is: $"
+ (radioT * .85));
scan.close();
}
}
正确提出所有问题,但 return 没有输出。这是一个简单的 Java 程序,所以我想要最简单的答案
问题是您的 if
和 else
中的 none 正确触发,因为您比较的字符串不正确。
您到处都需要 if (str.equals("value"))
而不是 if (str == "value")
。如果您想要像 if (str == "value" || str == "VALUE")
这样不区分大小写的匹配,则需要 if (str.equalsIgnoreCase("value"))
。
请查看 How do I compare Strings in Java? 了解更多信息
几个问题:
在测试对象之间的相等性时,您应该始终使用 equals 方法,现在使用“==”,这意味着您正在比较两个对象引用。所以从
更改以下内容if (tixType == "GA" || tixType == "ga")
有
if (tixType.equalsIgnoreCase("ga"))
其他字符串比较也一样。
在询问用户是否有radio voucher后,你应该只做与radio voucher相关的计算,如:
if (radioQ == "yes")//use equalsIgnoreCase method of String System.out.print("With the radio discount, you will save 20%!"); radioT = ((ticketTotal - (ticketTotal * radioDiscount))); if (radioT >= 200 && radioT < 400) System.out.println("With a 10% discount, your total is: $" + (radioT * .9)); else if (radioT > 400) System.out.println("With a 15% discount, your total is: $" + (radioT * .85)); //apply discount on ticket total? } else ...