购物车-数组未存储值

时间:2018-07-03 05:42:38

标签: java arrays multidimensional-array

我一直在尝试创建一个购物车,用户可以在其中输入他/她购买的商品数量以及每个商品的价格。 我在阵列上遇到问题。我无法存储每种产品的价格。如何将第二个值(价格)存储在数组中以匹配每个项目?

public static void main(String[] args){

    Scanner scan = new Scanner(System.in);

    int[][] itemsCart;
    int itemsInTheCart=0;
    int itemsPrice = 0;

    System.out.print("Please enter the number of items in your cart: ");
    itemsInTheCart = scan.nextInt();

     for(int i = 0; i < itemsInTheCart; i++){
        System.out.print("Enter the price for item " + (i+1) + ": ");

        itemsPrice = scan.nextInt();

        itemsCart = new int[itemsPrice][itemsPrice];

        // System.out.println(itemsCart.length);
    }

}

4 个答案:

答案 0 :(得分:3)

在使用数组之前,需要先声明其大小。

此外,在您的示例中,您不需要2D数组,也可以使用1D数组。

此外,您还需要在循环外初始化数组,否则它将在每次迭代中被覆盖

System.out.print("Please enter the number of items in your cart: ");
itemsInTheCart = scan.nextInt();
int [] itemsCart = new int [itemsInTheCart];

for (....) {

    itemsCart[i] = itemsPrice;

}

答案 1 :(得分:0)

代替使用ArrayList

例如创建一个对象类

class ShoppingDetails{
    private String itemName;
    private Integer price;

    public ShoppingDetails(String itemName, Integer price) {
        this.itemName = itemName;
        this.price = price;
    }
    //add getter and setter if you want
}

现在您可以在

中使用它了
ArrayList<ShoppingDetails> shoppingCart=new ArrayList<>();


shoppingCart.add(new ShoppingDetails("item1",100);

通过这种方式,您可以将价格映射到商品。

答案 2 :(得分:0)

如@“ Scary Wombat”所述,您的方法比2D阵列更适合于1D阵列。但是,由于您要使用2D数组,因此我想指出您的编码位置会更好。他还提到在使用2D数组之前需要声明大小

您的行“ itemsCart = new int [itemsPrice] [itemsPrice];”会更好,因为itemsCart = new int [i] [itemsPrice];因为这将确保新索引填充有适当的值。

我已经对您的主体进行了一些编辑。如果您不理解,请随时作为我

this.client
  .api("https://graph.microsoft.com/beta/me/notes/sections/{Section ID}/pages")
  .header("Content-Type", "application/xhtml+xml")
  .header("boundary", "MyPartBoundary")
  .post(dataToSend);

答案 3 :(得分:-2)

import java.util.Scanner;
public class Main{

 public static void main(String[] args){

Scanner scan = new Scanner(System.in);
int itemsInTheCart=0;
System.out.print("Please enter the number of items in your cart: ");
itemsInTheCart = scan.nextInt();
int[] itemsCart = new int[itemsInTheCart]; 

 for(int i = 0; i < itemsInTheCart; i++){
    System.out.print("Enter the price for item " + (i+1) + ": ");
    itemsCart[i] = scan.nextInt();
}

 for(int i = 0; i < itemsInTheCart; i++){

     System.out.println(itemsCart[i]);
     }
}
}