此代码是收据程序的一部分。我循环使用,以便用户可以输入商品价格(最多20件商品)。我需要打印所有商品价格的总和。请注意,所有商品价格都存储在同一个双变量newItemPrice
中。这甚至可能吗?如果没有,请告诉我另一种方法来做到这一点。
while(x < 20){//maximum of 20 items
x++;//item # (x was decalred as an integer of 1)
System.out.println("\nEnter new item's price");
Scanner newItemPriceSC = new Scanner(System.in);
Double newItemPrice = newItemPriceSC.nextDouble();//scans next double (new item's price)
System.out.println("ITEM # " + x + "\t" + "$" + newItemPrice);//item prices
System.out.println("\n");
System.out.println("type \"no more!\" if there are no more items\ntype any other word to continue");
Scanner continueEnd = new Scanner(System.in);
String answ = continueEnd.nextLine();
if(!(answ.equals("no more!"))){
continue;
}
if(answ.equals("no more!")){
break;//ends loop
}
break;//ends loop (first break; was for a loop inside of this loop)
答案 0 :(得分:0)
您可以使用newItemPrice累积所有价格,只需使用当前扫描的价格递增即可。
Double newItemPrice += newItemPriceSC.nextDouble();
然而,你失去了在下一行打印出价格的能力。
您需要引入一个临时变量,其中包含newItemPriceSC.nextDouble()的结果,以便您可以将其打印出来。如果您失去了打印商品价格的要求,那么您就不需要临时价值。
答案 1 :(得分:0)
在while开始之前声明一个新变量:
double total = 0;
然后在你的周期中添加一行代码:
Scanner newItemPriceSC = new Scanner(System.in);//your code
Double newItemPrice = newItemPriceSC.nextDouble();//your code
total +=newItemPrice; //this is the new line
当循环结束时,“总”变量将包含输入的所有价格的总和。