互联网服务提供商为其客户提供三种不同的订阅服务:
• Offer A: For $9.95 per month 10 hours of access are provided. Additional hours are $2.00 per hour
• Offer B: For $13.95 per month 20 hours of access are provided. Additional hours are $1.00 per hour
• Offer C: For $19.95 per month unlimited access is provided.
编写一个程序Internet.java,它接受客户购买的商品(A,B或C)以及使用的小时数。然后它应显示总费用。
> java Internet A 20
The total charges: $29.95
我已经编写了我的代码,但由于某种原因它会一直显示错误的输出:
public class Internet {
public static void main(String [] args){
String offer = args[0];
int hours = Integer.parseInt(args[1]);
String error = "error";
charge(offer,hours);
}
public static double charge(String offer, int hours){
char c = offer.charAt(0);
double PackA = 9.95;
double PackB = 13.95;
double PackC = 19.95;
if (c == 'A'){
PackA = (hours - 10)*2.00;
System.out.println("the total charges: " + PackA);
return PackA;
}
else if(c == 'B'){
PackB = (hours - 20)*1.00;
System.out.println("the total charges: " + PackB);
return PackB;
}
else if (c == 'C') {
System.out.println("the total charges: " + PackC);
return PackC;
}
return error;
}
}
答案 0 :(得分:3)
您似乎忘记将基本费率添加到案例A和B中。
PackA += (hours - 10)*2.00;
答案 1 :(得分:1)
您试图在充电功能结束时返回名为“错误”的未声明变量。
你的收费函数也意味着返回一个double,所以返回字符串'error'也行不通。
答案 2 :(得分:1)
您将根据计算结果覆盖包的起始值 这样:
PackA = (hours - 10)*2.00;
将覆盖PackA
中的任何现有值。
你想要的是这个:
PackA += (hours - 10)*2.00;
+=
运算符是PackA = PackA + (hours - 10)*2.00;
的简写
其中包括计算中要约的原始值。
为PackB
的事情做同样的事。
答案 3 :(得分:0)
从功能定义中删除Satic
public double charge(String offer, int hours)