Java 运行时错误
我正在写一个模拟商店的程序。问题是,当我试图得到总数时,它只给出我最后购买的物品的总数,而不是所有购买的物品的总数。我做错了什么?我能纠正什么Java 运行时错误,java,runtime-error,Java,Runtime Error,我正在写一个模拟商店的程序。问题是,当我试图得到总数时,它只给出我最后购买的物品的总数,而不是所有购买的物品的总数。我做错了什么?我能纠正什么 import java.util.Scanner; public class Invoice { public static String partNum; public String description; public int quantity; public double price; public String part_de
import java.util.Scanner;
public class Invoice {
public static String partNum;
public String description;
public int quantity;
public double price;
public String part_description(String parts){
partNum=parts;
if(parts.equals("10")){
description="This is a large metal hammer, $20";price=20;}
else if(parts.equals("15")){description="This is a small plastic hammer, $5";price= 5;}
else if(parts.equals("20")){description="This is a medium wooden hammer, $10";price=10;}
else if(parts.equals("25")){description="This is a bucket of paint, $25";price=25;}
else{description="No such part number exists.";}
return description;
}
public void setquantity(int amount){
quantity=amount;
}
public int getquantity(){
return quantity;
}
public void setprice(double cost){
price=cost;
if(cost<0){cost=0;}
}
public double getprice(){
return price;
}
public double getInvoiceAmount(double total){
total=total+(quantity*price);
return total;
}
public static void main(String[] args){
Scanner s1= new Scanner(System.in);
Invoice invoiceObject= new Invoice();
boolean ask=true;
while(ask==true){
System.out.println("Chose one of the fallowing part numbers: 10, 15, 20, 25");
partNum=s1.nextLine();
System.out.println(invoiceObject.part_description(partNum));
System.out.printf("\nHow many #%s would you like to get: ", partNum);
int numOf=s1.nextInt();
invoiceObject.setquantity(numOf);
System.out.println("would you like to keep shopping? chose true or false");
ask=s1.nextBoolean();
partNum=s1.nextLine();
}
System.out.println("Your total price will be:$ "+invoiceObject.getInvoiceAmount(0));
}}
import java.util.Scanner;
公共类发票{
公共静态字符串partNum;
公共字符串描述;
公共整数;
公开双价;
公共字符串部件描述(字符串部件){
partNum=零件;
如果(部分等于(“10”)){
description=“这是一个大金属锤,20美元;价格=20;}
如果(parts.equals(“15”){description=”这是一个小塑料锤,5美元;价格=5;}
否则,如果(parts.equals(“20”){description=“这是一把中型木锤,10美元”;价格=10;}
否则如果(parts.equals(“25”){description=“这是一桶油漆,25美元”;price=25;}
else{description=“不存在此类零件号。”;}
返回说明;
}
公共无效设置数量(整数金额){
数量=金额;
}
公共整数getquantity(){
退货数量;
}
公共定价(双倍成本){
价格=成本;
如果(cost您从未在任何地方实际合计总价格。您需要有一个变量,例如totalSum。您希望在用户开始做任何事情之前将其设置为0。然后您希望增加价格
//pseudo code.
totalSum = totalSum + (quantity*price)
//at the end
print(totalSum)
这是一个逻辑错误…不是运行时错误。这是我在getInvoiceAmount中所做的,我写的total=total+(quantity*price);是的,但您只传递“0”…您认为您应该传递什么?您应该只调用一次吗?如果您多次添加到总数中,您不应该从其他地方调用它吗?