这就是我现在所拥有的。我试图让用户输入的答案与我的if语句相对应。现在,它不会给我任何输入所需的信息,然后程序停止运行,不会给我任何输出或错误。我觉得我已经接近了,有人可以帮忙吗?
编辑:所以你们中的许多人都试图通过while循环来帮助我,这不是我要解决的部分。我试图找出我在if(contract.equals(“ A”))中缺少的内容,以及为什么它不会为此提供任何输出,所以我可以找出while循环,但是我无法如果输入A,它将不会运行A选择。我想念什么?
import java.util.Scanner;
public class BillCalculator{
public static void main(String[]args)
{
double totalBill;
double rate;
double baseCharge;
double hours;
double allowedHours;
double extra=0;
String contract;
Scanner keyboard = new Scanner(System.in);
System.out.println("What package did you purchase?");
contract= keyboard.nextLine();
System.out.println("How many hours did you use?");
hours=keyboard.nextDouble();
if (contract.equals("A"))
{
baseCharge=9.95;
rate=2.00;
allowedHours=10;
while (hours>allowedHours)
{
extra=extra+1;
}
totalBill=baseCharge+(rate*extra);
System.out.println("Your total bill is "+ totalBill);
}
else if (contract.equals("B"))
{
baseCharge =13.95;
rate=1.00;
totalBill=baseCharge+(rate*(hours-20));
System.out.println("Your total bill is "+ totalBill);
}
else if (contract.equals("C"))
{
System.out.println("Total monthly bill is $19.95.");
}
else
System.out.println("Wrong input.");
}
}
答案 0 :(得分:1)
while循环
if (contract.equals("A"))
{
baseCharge=9.95;
rate=2.00;
allowedHours=10;
while (hours>allowedHours)
{
extra=extra+1;
}
totalBill=baseCharge+(rate*extra);
System.out.println("Your total bill is "+ totalBill);
}
小时数属性输入> 10时是无限的
如果您要修复此问题,建议您更新while条件,或在while循环内使用if语句(然后中断)检查内容
我还建议您这样显示输入错误
System.err.println("Wrong input.");