如何在数组中添加两个值?
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”
我们刚刚开始在我的 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”