2016-04-11 12 views
-1

Ich baue eine Garage GarageJava Wenn Else Aussage, ich habe keine Ahnung, was ich tue

Ich möchte etwas in meinem Code zu erweitern. , Original sieht es dies wie:

private int exitSpeed = 10; // number of cars that can leave per minute 

     // Let cars leave. 

     for (int i = 0; i < exitSpeed; i++) { 
      // Bye! 
      if (exitCarQueue.peek() != null) 
       exitCarQueue.removeCar(); 
      if ((car = specialExitCarQueue.peek()) != null) 
       if (car instanceof ParkPassCar) 
        paymentMachine.pay(car); 
      specialExitCarQueue.removeCar(); 
     } 

ich etwas vertraut mit dem Hinzufügen von Autos zu bestimmten Stunden tat, aber ich mag als gut bewegen Autos verlassen zu bestimmten Stunden lassen. aber es funktioniert nicht.

Hinzufügen von Autos zu bestimmten Stunden:

private int weekDayArrivals= 30; // average number of arriving cars per hour 
    private int weekendArrivals = 60; // average number of arriving cars per hour 
    private int Concert = 300; // average number of arriving cars per hour 
    private int atNight = 1; // average number of arriving cars per hour 
    private int shoppingNight = 100; 

     int averageNumberOfCarsPerHour = 0; 
    if(hour >= 19 && hour<20 && day >=4 && day <= 6) { 

     averageNumberOfCarsPerHour = Concert; 

    } 

    else if(day >= 5 && day <= 6) 
    { 

     averageNumberOfCarsPerHour = weekendArrivals; 

    } 

    else if(hour >= 23 && hour<7) 
    { 

     averageNumberOfCarsPerHour = atNight; 

    } 

    else if(hour >= 18 && hour<20 && day == 3) 
    { 

     averageNumberOfCarsPerHour = shoppingNight; 

    } 

    else{ 

     averageNumberOfCarsPerHour = weekDayArrivals; 
    } 

aber hinzufügen, wenn und else-Anweisungen an den Austritt Zeilen Code funktionieren nicht. Ich hoffe, ich habe genug Code zur Verfügung gestellt, damit ihr mir vielleicht helfen könnt.

Dank im Voraus

+0

"Es funktioniert nicht" - cool, können Sie uns tatsächliche Fehlermeldungen geben? Warnungen? Symptome? Warum überprüfen Sie, ob die Stunde größer oder gleich 19 und kleiner als 20 ist? Wie wäre es mit nur 'Stunde == 20'? Du machst diese komische Logik überall. Glaubst du wirklich, dass "Stunde" = 23 "und" Stunde <7 "beide wahr sein können? Auch Sie sind ständig den Durchschnitt neu zuweisen ... ist das Ihre Absicht? –

+0

Tag 6 ist Sonntag (und wahrscheinlich ist 0 Montag) - bist du sicher? –

Antwort

1

Ich glaube, Sie wollen OR-Klauseln nicht und wie: Stunde> = 23 & & Stunde < 7 unmöglich ist. Eine Variable darf nicht gleichzeitig größer als 23 und kleiner als 7 sein. Also solltest du das nochmal überprüfen.

0

Einige Ihrer Aussagen macht keinen Sinn, wie @DennisIch darauf hinweisen, die folgen, wenn nie wahr sein wird!

if(hour >= 23 && hour<7) 
{ 
    averageNumberOfCarsPerHour = atNight; 
} 

Ich glaube, Sie dies bedeuten:

if(hour >= 23 || hour < 7) //this will get the follow hours => 23 0 1 2 3 4 6 
{ 
    averageNumberOfCarsPerHour = atNight; 
} 

Und einige Ihrer wenn die reduziert werden kann, wie diese:

if(hour >= 19 && hour<20 && day >=4 && day <= 6) { 
    averageNumberOfCarsPerHour = Concert; 
} 

Der erste Teil Ihrer Aussage ist gleich hour == 19, weil die einzige Zahl, die diese Bedingung erfüllt hour >= 19 && hour<20 ist 19!

Verwandte Themen