gpt4 book ai didi

java - 这个java程序的输出有点偏差?

转载 作者:行者123 更新时间:2023-12-01 15:11:08 25 4
gpt4 key购买 nike

Java 代码:

public class Car {

//variables
int myStartMiles;
int myEndMiles;
double myGallonsUsed;
int odometerReading;
double gallons;

//constructors
public Car(int odometerReading) {
this.myStartMiles = odometerReading;
this.myEndMiles = myStartMiles;
}

//methods
public void fillUp(int odometerReading, double gallons) {
this.myEndMiles = odometerReading;
this.gallons = gallons;
}

public double calculateMPG() {
int a = (this.myEndMiles - this.myStartMiles);
return ((a) / (this.gallons));
}

public void resetMPG() {
myGallonsUsed = 0;
this.myStartMiles = myEndMiles;
}

public static void main(String[] args) {
int startMiles = 15;
Car auto = new Car(startMiles);

System.out.println("New car odometer reading: " + startMiles);
auto.fillUp(150, 8);
System.out.println("Miles per gallon: " + auto.calculateMPG());
System.out.println("Miles per gallon: " + auto.calculateMPG());
auto.resetMPG();
auto.fillUp(350, 10);
auto.fillUp(450, 20);
System.out.println("Miles per gallon: " + auto.calculateMPG());
auto.resetMPG();
auto.fillUp(603, 25.5);
System.out.println("Miles per gallon: " + auto.calculateMPG());
}
}

我正在尝试让它工作,但无法获得所需的输出。

期望的结果是:

New car odometer reading: 15
Miles per gallon: 16.875
Miles per gallon: 16.875
Miles per gallon: 10.0
Miles per gallon: 6.0

我得到:

New car odometer reading: 15
Miles per gallon: 16.875
Miles per gallon: 16.875
Miles per gallon: 15.0
Miles per gallon: 6.0

你能告诉我代码有什么问题吗?我正在尝试在纸上手动运行它。

最佳答案

问题出在您的 fillUp 方法中。具体来说这一行:

this.gallons = gallons;

应该是:

this.gallons += gallons;

由于您是分配而不是添加,因此在第三种情况下输出是错误的,因为:

auto.fillUp(350, 10);
auto.fillUp(450, 20);

加仑设置为10,然后用20覆盖它,而不是添加10,然后添加20,总共30

编辑:您的resetMPG方法中还需要gallons = 0;。目前您设置了 myGallonsUsed = 0,但该变量未使用,所以我不知道您为什么要这样做。

关于java - 这个java程序的输出有点偏差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com