我在这里有一个任务:用方法moviefee()定义一个PayPerView类,计算租借的电影的月费。该方法应该采用一个参数来表示租用的电影数量,并将费用返回为双倍。
每部电影的租赁费为6.99美元。每月租金超过10的优惠客户可享受5%的折扣。
到目前为止,这是我的代码:
public class PayPerView {
public static void main(String [] args){
}
public static double moviefee(int n){
double fee = 6.99;
double total= n*fee;
System.out.println("Your balance due this month is" + total);
//return 6.99*n * ((n>10) ? 0.95:1);
}}
我知道这很糟糕,我很抱歉你可以忽略我注释掉的最后一行代码,因为我要重做它并把它变成if语句。我想也许我应该使用阵列,但我不能对吗?因为我不知道有多少电影会被租用?我应该使用arraylist来获取租借的电影数量吗?
答案 0 :(得分:1)
实际上你注释掉的那条线看起来几乎就是你要做的事情。它有什么特别的错误吗?
如果你真的需要在控制台输出结果......
final double fee = 6.99;
double total = n * fee * (n > 10 ? .95 : 1.0);
System.out.println("Your balance due this month is" + total);
return total;
答案 1 :(得分:0)
如果您没有任何数据,我不明白您为什么要使用ArrayList
。
你可能想尝试这些方面:
double total = n * fee;
if (n > 10) {
total *= 0.95;
}
我也看到你想使用三元运算符,所以你可以用
替换上面的代码块double total = n * fee * (n > 10 ? 0.95 : 1.0);
答案 2 :(得分:0)
你走在正确的轨道上
public static double moviefee(int n){
double fee = 6.99;
double total;
if(n <= 10){
total= n*fee;
}
else{
total= n*fee - (n*fee*0.05); //5 percent discount
}
System.out.println("Your balance due this month is" + total);
return total;
}
修改:已添加double total;