I can't figure out why my if statement is not working. For some reason it always evaluates first if statement as true, and in result outputs the wrong value.
With numberOfDays = 19 it should output 4.95, but instead it outputs 1.65, because it evaluates first if statement as true and doesn't change the value of numberOf7DayPasses:
class TransitCalculator {
int numberOfRides;
int numberOfDays;
double[] prices = { 2.75, 33.00, 127.00 };
public TransitCalculator(int myRides, int myDays) {
numberOfRides = myRides;
numberOfDays = myDays;
}
public double unlimited7Price() {
int numberOf7DayPasses = 1;
if (numberOfDays % 7 != 0 && numberOfDays / 7 != 1 && numberOfDays / 7 > 1 && numberOfDays / 7 < 2) {
numberOf7DayPasses = 2;
} else if (numberOfDays % 7 != 0 && numberOfDays / 7 != 2 && numberOfDays / 7 > 2 && numberOfDays / 7 < 3) {
numberOf7DayPasses = 3;
} else if (numberOfDays % 7 != 0 && numberOfDays / 7 != 3 && numberOfDays / 7 > 3 && numberOfDays / 7 < 4) {
numberOf7DayPasses = 4;
} else if (numberOfDays % 7 != 0 && numberOfDays / 7 != 4 && numberOfDays / 7 > 4 && numberOfDays / 7 < 5) {
numberOf7DayPasses = 5;
} else if (numberOfDays % 7 == 0 && numberOfDays / 7 == 1) {
numberOf7DayPasses = 1;
} else if (numberOfDays % 7 == 0 && numberOfDays / 7 == 2) {
numberOf7DayPasses = 2;
} else if (numberOfDays % 7 == 0 && numberOfDays / 7 == 3) {
numberOf7DayPasses = 3;
} else if (numberOfDays % 7 == 0 && numberOfDays / 7 == 4) {
numberOf7DayPasses = 4;
} else if (numberOfDays % 7 == 0 && numberOfDays / 7 == 5) {
numberOf7DayPasses = 5;
}
double priceOfOneRide = numberOf7DayPasses * prices[1] / numberOfRides;
return priceOfOneRide;
}
public static void main(String[] args){
TransitCalculator testPerson = new TransitCalculator(20, 19);
System.out.println(testPerson.unlimited7Price());
}
}
Aucun commentaire:
Enregistrer un commentaire