如何在数组中添加两个值?

How to add two values in an array?

我们刚刚开始在我的 Java 课程中学习数组,所以我遇到了问题。我想将 "quantity" 乘以 "cost" 以便它打印出总成本,但现在它打印出总成本为 0。这是 driver:

import java.util.Scanner;

public class Problem2 {

public static void main(String[] args){

String purchase, date;
double quantity, cost;

Scanner myScanner = new Scanner (System.in);

    System.out.println("How many different types of items are you purchasing?");
    int answer = myScanner.nextInt();
    myScanner.nextLine(); // pick up the enter key

    Basket[] myBasket = new Basket[answer];
    for(int j = 0; j < answer; j++) {

        System.out.println("Please enter the item you purchased.");
        purchase = myScanner.nextLine();

        System.out.println("Please enter the date.");
        date = myScanner.nextLine();

        System.out.println("Please enter the quantity.");
        quantity = myScanner.nextFloat();

        System.out.println("Please enter the cost.");
        cost = myScanner.nextFloat();
        myScanner.nextLine(); // pick up the enter key  

        myBasket[j] = new Basket(purchase, date, quantity, cost);
    }

    for (int i = 0; i< answer; i++)
    {
        System.out.println(myBasket[i]);
    }
}
}

这是篮子 class:

import java.text.NumberFormat;

public class Basket {

    private String purchase, date;
    private double quantity, cost, totalCost;

    NumberFormat fmt = NumberFormat.getCurrencyInstance();

    public Basket(String purchase, String date, double quantity, double cost)
    {
        this.purchase = purchase;
        this.date = date;
        this.quantity = quantity;
        this.cost = cost;
    }

    public void Calculations()
    {
        totalCost = cost * quantity;
    }

    public String toString()
    {
        return "Purchase: " + purchase
        + "\nDate: " + date
        +"\nQuantity: " + quantity
        +"\nCost:" + fmt.format(totalCost);
    }
}

Calculations();添加到toString()

public String toString()
{
    Calculations();
    return "Purchase: " + purchase
    + "\nDate: " + date
    +"\nQuantity: " + quantity
    +"\nCost:" + fmt.format(totalCost);
}

或者由于计算方法是 public,您可以使用 myBasket[j].Calculations();

从主方法调用它

之后

myBasket[j] = new Basket(purchase, date, quantity, cost);

如果您想要填充 totalCost,您可以在创建 Baskets 实例时调用 Calculations 方法,例如:

myBasket[j] = new Basket(purchase, date, quantity, cost);
myBasket[j].Calculations();

这将计算总成本并将其保存在您稍后可以打印的实例变量中。

在 main() 的最后一行之后,添加下面的代码,

float total=0.0;
for (int i = 0; i< answer; i++)
{
    //System.out.println(myBasket[i]);
      total+=myBasket[2]*myBasket[3];
}
System.out.println("total cost:"+total);

您的“计算”方法未被调用。 我想你想在构造函数的最后一行调用它。

顺便说一句 - java 约定在方法名称的开头是小写的,最好根据它的作用来命名 - 例如“calculateTotalCost”