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