私はこのプログラムに3つのクラスがあります。ショッピング後の商品の総額をプリントアウトしたいが、出力に問題がある。ショッピングはアイテム数が異なるたびに、出力はすべて同じです。それを修正するために私を助けてもらえますか?ここ配列に追加されない項目
は、自分のコードである:
これは最初のクラスである:
public class LineItem {
private String name;
private int quantity;
private double pricePerUnit;
/**
*
*/
public LineItem(String name, int quantity, double pricePerUnit) {
this.name = name;
this.quantity = quantity;
this.pricePerUnit = pricePerUnit;
}
public double getCost() {
return quantity*pricePerUnit;
}
public void setQuantity(int newQuantity) {
quantity=newQuantity;
}
}
これにより、第2のクラスである:
import java.util.ArrayList;
public class ShoppingCart {
/**
*
*/
private LineItem[] item;
private int check;
public ShoppingCart() {
item = new LineItem[10];
check = 10;
}
public void add(LineItem newItem) {
int i = 0;
while (item[i] == null && check != 0){
item[i] = newItem;
i++;
check -= check;
}
}
public double getTotalCost() {
double totalCost = 0.0;
for(int i=0; i< item.length;i++){
if(item[i]!=null)
totalCost += item[i].getCost();
}
return totalCost;
}
}
これは第三のクラスである:
public class ShoppingCartTester{
public static void main(String[] args){
ShoppingCart singleItemCart = new ShoppingCart();
LineItem item1 = new LineItem("Dove shampoo",1,4.52);
singleItemCart.add(item1);
System.out.println(singleItemCart.getTotalCost());
//
ShoppingCart typicalCart = new ShoppingCart();
item1 = new LineItem("Dove shampoo",1,4.52);
typicalCart.add(item1);
LineItem item2 = new LineItem("apples",5,10.80);
typicalCart.add(item2);
LineItem item3 = new LineItem("avocados",5,20);
typicalCart.add(item3);
LineItem item4 = new LineItem("chocolate",1,4.25);
typicalCart.add(item4);
LineItem item5 = new LineItem("green onions",3,3.49);
typicalCart.add(item5);
System.out.printf("%.2f", typicalCart.getTotalCost());
System.out.println();
}
}
私は思う私の問題はaddメソッドにありますが、私はそれを修正する方法がわかりません。あなたがadd
i
を呼び出している
public void add(LineItem newItem) {
int i = 0; <--- Problem begins
while (item[i] == null && check != 0){
item[i] = newItem;
i++;
check -= check;
}
}
毎回0
FIX1にリセットを取得している::代わりlist
を持ってするには:
は
のArrayList代わりの配列を作成して、より良い私たちはいくつかの出力を見てもいいですか? – camelCoder
これは私が得た出力です:4.52 4.52 –
しかし、それは異なる数字でなければなりません。 –