¿Dónde lo mal estado? ¿Por qué es mi método vuelve infinito?

Tran Lam:
public class Vehicle {
    int passengers;
    int fuelcap;
    int mph;
    Vehicle(int p, int f, int m) {
         p = passengers;
         f = fuelcap;
         m = mph;
    }
    double fuelNeeded (int miles) {
        return (double) miles/mph;
    }
}
public class STUFF {
    public static void main(String[] args) {
        Vehicle minivan = new Vehicle(7, 16, 21);
        Vehicle sportscar = new Vehicle(2, 14, 12);
        double gallons;
        int dist = 252;
        gallons = minivan.fuelNeeded(dist);
        System.out.println(gallons);
        gallons = sportscar.fuelNeeded(dist);
        System.out.println(gallons);

    }
}
Output:
Infinity
Infinity

He estado atascado en este problema desde hace bastante veces ahora, no estoy seguro de donde metí la pata, pero el método mantiene outputing el resultado como Infinity, que sería mucho más útil si ustedes me puede dar algunas ideas sobre dónde y cómo el código estaba mal. ¡¡Muchas gracias!!

Schred:

Está asignando las variables locales ( p, f, m) los valores de las variables globales, sino que debe hacerlo a la inversa:

Vehicle(int p, int f, int m) {
     passengers = p;
     fuelcap = f;
     mph = m;
}

Debido a esto, estás dividiendo por 0 en fuelNeeded, lo que resulta en Infinity.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410305&siteId=1
Recomendado
Clasificación