我无法在 Java 中正确乘以数组
I cannot multiply the arrays correctly in Java
这是我的代码 - 它为 weightedProduct()
所做的全部是 return 0.00
.
我哪里做错了?我需要它来乘以 units * price
和 return 乘以 product
.
public class FrameArray {
private String frameInventory;
private int[] units;
private double[] price;
private double product;
public FrameArray( String frame, int[] unitsArray, double[] priceArray, double product )
{
frameInventory = frame;
units = unitsArray;
price = priceArray;
product = weightedProduct(unitsArray, priceArray);
}
public void setFrameInventory( String frame )
{
frameInventory = frame;
}
public String getFrameInventory()
{
return frameInventory;
}
public double weightedProduct(int[] unitsArray, double[] priceArray){
double value = 0;
double product = 0;
for(int i = 0; i < unitsArray.length; i++){
value = (double) (unitsArray[i] * priceArray[i]);
product = product + value;}
return product;
}
public void displayMessage()
{
System.out.printf( "Current frame inventory\n\n");
}
public void processInventory()
{
outputInventory();
}
public void outputInventory()
{
System.out.println( "Inventory levels:\n");
System.out.printf( "Style Qty Price Value\n\n");
for (int frame = 0; frame < price.length; frame++)
System.out.printf( "Frame %2d: %3d %5.2f %5.2f\n",
frame + 1, units[ frame ], price[ frame], product );
}
}
这是阴影效果。
我认为 FrameArray()
.
中存在歧义
语句中使用的product
只是将值赋值给函数范围内的参数。
product = weightedProduct(unitsArray, priceArray);
如图所示更正即可:
public FrameArray( String frame, int[] unitsArray, double[] priceArray, double product )
{
frameInventory = frame;
units = unitsArray;
price = priceArray;
this.product = weightedProduct(unitsArray, priceArray);
}
您也可以简单地删除 FrameArray()
的 product
参数,因为它只是通过 weightedProduct()
函数更新状态变量` s return 值。
这是我的代码 - 它为 weightedProduct()
所做的全部是 return 0.00
.
我哪里做错了?我需要它来乘以 units * price
和 return 乘以 product
.
public class FrameArray {
private String frameInventory;
private int[] units;
private double[] price;
private double product;
public FrameArray( String frame, int[] unitsArray, double[] priceArray, double product )
{
frameInventory = frame;
units = unitsArray;
price = priceArray;
product = weightedProduct(unitsArray, priceArray);
}
public void setFrameInventory( String frame )
{
frameInventory = frame;
}
public String getFrameInventory()
{
return frameInventory;
}
public double weightedProduct(int[] unitsArray, double[] priceArray){
double value = 0;
double product = 0;
for(int i = 0; i < unitsArray.length; i++){
value = (double) (unitsArray[i] * priceArray[i]);
product = product + value;}
return product;
}
public void displayMessage()
{
System.out.printf( "Current frame inventory\n\n");
}
public void processInventory()
{
outputInventory();
}
public void outputInventory()
{
System.out.println( "Inventory levels:\n");
System.out.printf( "Style Qty Price Value\n\n");
for (int frame = 0; frame < price.length; frame++)
System.out.printf( "Frame %2d: %3d %5.2f %5.2f\n",
frame + 1, units[ frame ], price[ frame], product );
}
}
这是阴影效果。
我认为 FrameArray()
.
语句中使用的product
只是将值赋值给函数范围内的参数。
product = weightedProduct(unitsArray, priceArray);
如图所示更正即可:
public FrameArray( String frame, int[] unitsArray, double[] priceArray, double product )
{
frameInventory = frame;
units = unitsArray;
price = priceArray;
this.product = weightedProduct(unitsArray, priceArray);
}
您也可以简单地删除 FrameArray()
的 product
参数,因为它只是通过 weightedProduct()
函数更新状态变量` s return 值。