我试图为我的程序创建一个switch语句。对于完全披露,这是明天到期的家庭作业。我应该使用switch语句为CD的总销售额分配折扣率。黄金15%的折扣,银10%,青铜5%和非会员0%。
到目前为止,这是我的计划。我还没有得到输出,但只要我不能通过这个开关,这应该不是问题。
public static void main(String[] args) {
//Variables
String firstName = null;
String lastName = null;
int songs;
double cost;
int membership;
double serviceCharge;
double productCharge;
double baseCharge;
//Keyboard input
Scanner keyboard = new Scanner(System.in);
//Gathering information from the user
System.out.println("Enter your first name:");
firstName = keyboard.nextLine();
System.out.println("Enter your last name:");
lastName = keyboard.nextLine();
System.out.println("Enter the number of songs downloaded:");
songs = keyboard.nextInt();
System.out.println("enter the cost per song:");
cost = keyboard.nextDouble();
System.out.println("Enter the status of membership:"
+ "3 represents a gold member"
+ "2 represents a silver member"
+ "1 represeents a bronze member:"
+ "0 represents a nonmember");
membership = keyboard.nextInt();
//Here is where the math starts
baseCharge = cost * songs;
serviceCharge = baseCharge;
if (songs <= 8)
serviceCharge = .07 * baseCharge;
else if (songs > 8 && songs <= 15)
serviceCharge = .04 * baseCharge;
else if (songs > 15 && songs < 20)
serviceCharge = .02 * baseCharge;
else if (songs <= 20)
serviceCharge = 0;
productCharge = baseCharge + serviceCharge;
switch (membership)
{
case 3: productCharge * .15;
break;
case 2:
break;
case 1:
break;
case 0:
break;
default:
break;
}
显然你不能在switch语句中使用double,但我迷路了。如何在不使用双倍的情况下分配百分比贴现率?你需要小数才能正确地计算数学。或者我是否完全错误地看待这个?
一旦我完成了程序的其余部分,这就是输出的样子。
输入您的名字: 约翰 输入您的姓氏: 母鹿 输入下载的歌曲数量: 8 输入每首歌曲的费用: 0.99 输入会员资格状态: 3代表金成员 2代表银成员 1代表青铜构件; 0表示非成员: 1 全名:John Doe 下载的歌曲数量:8 每首歌的价格:0.99美元 服务费:0.32美元 小计:7.60美元 税:0.36美元 总费用:7.58美元
对不起文字墙。非常感谢您提供任何帮助。
答案 0 :(得分:2)
您可以通过double
/ switch
将折扣信息保存在case
变量中:
double discount = 0.0;//some default value
switch (membership)
{
case 3:
discount = .15;
break;
case 2:
discount = .05
break;
//etc.
default:
discount = 0.0;//some default value
break;
}
//now do the calculation using the discount variable
double finalProductCharge = productCharge * (1.0 - discount);
答案 1 :(得分:0)
如果会员资格为3金,2代银,1代青铜,0代表零,你可以根据不计switch
计算百分比,因为每个会员级别为5%。
final double discountPerMemberLevel = 0.05;
productCharge = baseCharge + serviceCharge;
double discount = membership * discountPerMemberLevel;
productCharge *= 1 - discount;
答案 2 :(得分:0)
productCharge * .15
不是一个语句,这是switch
所期望的语句,因此编译器会给你一条消息。下一步是检查switch语句的语法。无论如何,评估该表达式还没有达到任何目的。