Java如果Else声明,我不知道我在做什么

时间:2016-04-11 15:40:57

标签: java if-statement

我正在修建停车场

我想在我的代码中扩展一些东西。 ,原来它看起来像这样:

   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();
        }

我做了一些熟悉在某些时间添加汽车的事情,但我想让汽车在某些时间离开。但它不起作用。

在特定时段添加汽车:

 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;
    }

但是在代码的退出行添加if和else语句不起作用。 我希望我提供足够的代码,以便你们可以帮助我。

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为你想要的OR条款不是和:小时&gt; = 23&amp;&amp;小时&lt; 7是不可能的。变量不能同时大于23且小于7。所以你应该重新检查一下。

答案 1 :(得分:0)

你的一些陈述没有任何意义,比如@DennisIch指出的, 如果永远不会成为真实的话!

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

我认为你的意思是:

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

你的一些if可以减少,就像这个:

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

您的陈述的第一部分等于hour == 19 ,因为满足此条件hour >= 19 && hour<20的唯一数字是19!