的互联网服务提供商有三种不同的订阅套餐的客户:代码显示了错误的输出
• 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;
}
}
使用调试器删除Satic看到执行 –
是它显示什么输出过程中发生了什么事?你能指望什么? – Taylor
我不明白它是如何显示错误的输出,因为它根本不编译(尝试从'charge'返回'error',一个错误类型的变量,甚至没有在该范围内声明) 。 – Boann