Java行程燃油成本计算程序运行报错排查求助
错误原因
- 最核心的问题是Java语法强制要求所有方法必须定义在类的内部,你当前的代码直接在全局范围编写了
calcFuelNeeded、calcGallonsFuelNeeded、calcCostNeeded三个静态方法以及main方法,没有外层的类包裹,不符合Java语法规范,因此编译报错。 - 你代码里用到的
Math.ceil属于java.lang包下的工具类,默认会自动导入,不需要额外添加import语句。
修正后的完整代码
import java.util.Scanner; // 新增外层类包裹所有方法,类名可以和文件名保持一致 public class FuelCostCalculator { /** * Calculates the amount of fuel needed. * * @param distance The distance of the trip. * @param milesPerLiter Total distance that could be achieved with 1 liter of fuel. * @return Total fuel needed. */ public static double calcFuelNeeded(double distance, double milesPerLiter) { double fuelNeeded = distance / milesPerLiter; return fuelNeeded; } /** * Calculates the total number of gallons needed. * * @param fuelNeeded Total fuel needed. * @param litersPerGallon The volume of each gallon. * @return Total number of gallons needed. */ public static int calcGallonsFuelNeeded(double fuelNeeded, double litersPerGallon) { double gallonsFuel = Math.ceil(fuelNeeded / litersPerGallon); return (int) gallonsFuel; } /** * Calculates the total cost needed. * * @param gallonsFuel Total number of gallons needed. * @param costPerGallon The cost of each gallon. * @return The total cost of the trip. */ public static double calcCostNeeded(int gallonsFuel, double costPerGallon) { double costNeeded = gallonsFuel * costPerGallon; return costNeeded; } public static void main(String[] args) { Scanner scnr = new Scanner(System.in); System.out.println("Enter the distance to be covered (miles):"); double distance = scnr.nextDouble(); double milesPerLiter = 13.7; double litersPerGallon = 3.785; double costPerGallon = 2.629; scnr.close(); System.out.println("Fuel Needed: " + calcFuelNeeded(distance, milesPerLiter) + " liter(s)"); System.out.println("Gallons needed: " + calcGallonsFuelNeeded( calcFuelNeeded(distance, milesPerLiter), litersPerGallon) + " gallon(s)"); System.out.println("Cost needed: " +calcCostNeeded( calcGallonsFuelNeeded( calcFuelNeeded(distance, milesPerLiter), litersPerGallon), costPerGallon) + " $"); } }
内容的提问来源于stack exchange,提问作者ZJR
相关产品推荐
相关产品推荐

