Java MPG计算器
我已经完成了一个简单计算器的大部分代码。我现在的主要问题是在程序结束时,我需要它来计算用户决定输入的所有英里数的平均MPG 我有一些号码,但不是正确的。如果你能向我求知,那就太棒了。如果还有其他问题,请告诉我,我可以接受任何批评Java MPG计算器,java,Java,我已经完成了一个简单计算器的大部分代码。我现在的主要问题是在程序结束时,我需要它来计算用户决定输入的所有英里数的平均MPG 我有一些号码,但不是正确的。如果你能向我求知,那就太棒了。如果还有其他问题,请告诉我,我可以接受任何批评 import java.util.Scanner; public class GasMileage { public static void main(String[] args) { GasMileage mileage1 = new Ga
import java.util.Scanner;
public class GasMileage {
public static void main(String[] args) {
GasMileage mileage1 = new GasMileage();
GasMileage mileage2 = new GasMileage();
Scanner input = new Scanner(System.in);
System.out.println("Welcome to the MPG calculator!");
double counterM;
double counterG;
double mileage;
double gallons;
double mpg;
double average;
String repeat = "yes";
while (repeat.equals("Yes") ||
repeat.equals("yes") ||
repeat.equals("y") ||
repeat.equals("Y")) {
System.out.println("Enter miles driven: ");
mileage = input.nextDouble();
counterM = mileage++;
mileage1.setMilesDriven(mileage);
mileage2.setMilesDriven(counterM);
System.out.println("Enter gallons used: ");
gallons = input.nextDouble();
counterG = gallons++;
mileage1.setGallonsUsed(gallons);
mileage2.setGallonsUsed(counterG);
mileage1.setMpg(mileage, gallons);
mileage2.setMpg(counterM, counterG);
mpg = mileage1.getMpg();
System.out.println("Your mpg is: " + mpg);
System.out.println("repeat? ");
repeat=input.next();
}
average = mileage2.getMpg();
System.out.println("Your total average mpg is: " + average);
}
double milesDriven;
double gallonsUsed;
double mpg1;
public void setMilesDriven(double Miles) {
milesDriven = milesDriven + Miles;
}
public void setGallonsUsed(double Gallons) {
gallonsUsed = gallonsUsed+Gallons;
}
public double getMilesDriven() {
return milesDriven;
}
public double getGallonsUSed() {
return gallonsUsed;
}
public void setMpg(double setM, double setG) {
mpg1 = (setM) / setG;
}
public double getMpg() {
return mpg1;
}
}
里程+++
实际上会增加里程值
int mileage = 1;
int gallons = mileage++; // mileage will equal 2 after this
作为旁注,不要等到最后才清理/格式化代码。干净的代码更容易阅读,因此更容易发现问题。我发现代码中几乎没有问题:
- 改用
repeat.equalsIgnoreCase(“是”)
- 为什么里程++&加仑++,这将改变您的输入
未使用对象中已存在的值setMpg()
未在环路内重置,因此将更新以前的结果,而不是创建新结果mileage1
import java.util.Scanner;
public class GasMileage {
public static void main(String[] args) {
GasMileage mileage2 = new GasMileage();
Scanner input = new Scanner(System.in);
System.out.println("Welcome to the MPG calculator!");
double mileage;
double gallons;
double mpg;
double average;
String repeat = "yes";
while (repeat.equalsIgnoreCase("YES")) {
GasMileage mileage1 = new GasMileage();
System.out.println("Enter miles driven: ");
mileage = input.nextDouble();
mileage1.setMilesDriven(mileage);
mileage2.setMilesDriven(mileage);
System.out.println("Enter gallons used: ");
gallons = input.nextDouble();
mileage1.setGallonsUsed(gallons);
mileage2.setGallonsUsed(gallons);
mpg = mileage1.getMpg();
System.out.println("Your mpg is: " + mpg);
System.out.println("repeat? ");
repeat = input.next();
}
average = mileage2.getMpg();
System.out.println("Your total average mpg is: " + average);
}
double milesDriven;
double gallonsUsed;
double mpg1;
public void setMilesDriven(double Miles) {
milesDriven = milesDriven + Miles;
}
public void setGallonsUsed(double Gallons) {
gallonsUsed = gallonsUsed + Gallons;
}
public double getMilesDriven() {
return milesDriven;
}
public double getGallonsUSed() {
return gallonsUsed;
}
public double getMpg() {
return milesDriven / gallonsUsed;
}
}
Welcome to the MPG calculator!
Enter miles driven: 100
Enter gallons used: 25
Your mpg is: 4.0
repeat? yes
Enter miles driven: 200
Enter gallons used: 20
Your mpg is: 6.666666666666667
repeat? n
Your total average mpg is: 6.666666666666667 (300 / 45)
输出:
Welcome to the MPG calculator!
Enter miles driven: 100
Enter gallons used: 25
Your mpg is: 4.0
repeat? yes
Enter miles driven: 200
Enter gallons used: 20
Your mpg is: 10.0
repeat? n
Your total average mpg is: 6.666666666666667 (300 / 45)
如果您想要增加里程数,则将里程数1移回环路外。因此,输出将如下所示:
import java.util.Scanner;
public class GasMileage {
public static void main(String[] args) {
GasMileage mileage2 = new GasMileage();
Scanner input = new Scanner(System.in);
System.out.println("Welcome to the MPG calculator!");
double mileage;
double gallons;
double mpg;
double average;
String repeat = "yes";
while (repeat.equalsIgnoreCase("YES")) {
GasMileage mileage1 = new GasMileage();
System.out.println("Enter miles driven: ");
mileage = input.nextDouble();
mileage1.setMilesDriven(mileage);
mileage2.setMilesDriven(mileage);
System.out.println("Enter gallons used: ");
gallons = input.nextDouble();
mileage1.setGallonsUsed(gallons);
mileage2.setGallonsUsed(gallons);
mpg = mileage1.getMpg();
System.out.println("Your mpg is: " + mpg);
System.out.println("repeat? ");
repeat = input.next();
}
average = mileage2.getMpg();
System.out.println("Your total average mpg is: " + average);
}
double milesDriven;
double gallonsUsed;
double mpg1;
public void setMilesDriven(double Miles) {
milesDriven = milesDriven + Miles;
}
public void setGallonsUsed(double Gallons) {
gallonsUsed = gallonsUsed + Gallons;
}
public double getMilesDriven() {
return milesDriven;
}
public double getGallonsUSed() {
return gallonsUsed;
}
public double getMpg() {
return milesDriven / gallonsUsed;
}
}
Welcome to the MPG calculator!
Enter miles driven: 100
Enter gallons used: 25
Your mpg is: 4.0
repeat? yes
Enter miles driven: 200
Enter gallons used: 20
Your mpg is: 6.666666666666667
repeat? n
Your total average mpg is: 6.666666666666667 (300 / 45)
您正在将
里程2
的值设置为计数器变量。这将基于计数器的迭代返回一个常量结果,而不是基于条目的平均值。。考虑使用<代码>列表来存储所有的代码> MyEre1.GETMPG](< /代码>调用)的结果,然后使用该列表查找平均值。Ahh,谢谢。我刚刚开始真正理解循环和计数器,但这是有意义的。另外,我肯定会在早些时候重新格式化,我刚开始编码时就进入了一个小圈子,保持原样。:)太多的开发人员习惯于在代码运行后“清理代码”。早点改掉是个好习惯。