プログラムのメインでメソッドを呼び出すのに問題があります。
プログラムの仕様は次のとおりです。
setNoOfVehicles()
: 所有車両数を返します。
setWeeklyFuelCost()
: 所有しているすべての車両のガソリンの週平均コストを返します。
calcYearlyFuelCost()
: 週平均燃料費を受け取り、年間平均燃料費を返します。
displayFuelCost()
: 所有車両数、週平均燃料費、年間平均燃料費を受け取ります。
main()
:
戻り値を呼び出しsetWeeklyFuelCost()
て、ローカル変数に格納します。
への呼び出し、週平均燃料費のローカル変数、およびdisplayFuelCost()
への呼び出しを引数として送信して呼び出します。setNoOfVehicles()
calcYearlyFuelCost()
スキャナーはグローバルレベルで宣言されています
public static void main(String[] args)
{
double x = setWeeklyFuelCost();
displayFuelCost( setNoOfVehicles(), x, calcYearlyFuelCost(x)); //This is the correct parameters I needed to pass thru displayFuelCost(). I didn't know this at the time and this is what I was trying to ask in this post.
}
private static int setNoOfVehicles()
{
System.out.print( "How many vehicles do I own? " );
int noOfVehicles = input.nextInt();
return noOfVehicles;
}
private static double setWeeklyFuelCost()
{
System.out.print( "Enter the average weekly fuel cost for my vehicles: ");
double weeklyFuelCost = input.nextDouble();
return weeklyFuelCost;
}
private static double calcYearlyFuelCost(double weeklyFuelCost)
{
double yearlyFuelCost = 0.0;
yearlyFuelCost = weeklyFuelCost * 52;
return yearlyFuelCost;
}
private static void displayFuelCost( int noOfVehicles, double weeklyFuelCost, double yearlyFuelCost)
{
double difference = yearlyFuelCost - 5044.00;
if( yearlyFuelCost > 5044.00)
{
System.out.printf( "No of Vehicles: %d\n"
+ "Avg Weekly Fuel Cost: $%,.2f\n"
+ "Avg Annual Fuel Cost: $%,.2f\n\n"
+ "I am OVER budget by $%,.2f.", noOfVehicles, weeklyFuelCost, yearlyFuelCost, difference);
}
else if( yearlyFuelCost < 5044.00)
{
difference = difference * -1;
System.out.printf( "No of Vehicles: %d\n"
+ "Avg Weekly Fuel Cost: $%,.2f\n"
+ "Avg Annual Fuel Cost: $%,.2f\n\n"
+ "I am UNDER budget by $%,.2f. PAARRTY!!! ", noOfVehicles, weeklyFuelCost, yearlyFuelCost, difference);
}
else
{
System.out.printf( "No of Vehicles: %d\n"
+ "Avg Weekly Fuel Cost: $%,.2f\n"
+ "Avg Annual Fuel Cost: $%,.2f\n\n"
+ "I am RIGHT ON BUDGET!", noOfVehicles, weeklyFuelCost, yearlyFuelCost, difference);
}
}
}
最後の仕様は私を支えているものです。displayFuelCost() を呼び出します。
私の問題は、通過する必要があるパラメーターを正確に知らなかったことですdisplayFuelCost()
。この質問をする前に、上記の変数 x を使用する必要があることはわかっていました。
displayFuelCost( setNoOfVehicles(), x, calcYearlyFuelCost(x));
メインを正しく機能させるために入力する必要があるのはこれだけでした。