java - 为什么我的 if 语句不起作用?

标签 java if-statement

我正在尝试检查加油泵是否可以免费使用&&充满汽油,然后我尝试使该泵成为队列中的汽车使用的泵。

Thread carThreads[]=new Thread[TOTAL_CARS];
  try {
    Pump pump1 = new Pump();
    pump1.setName("pump1");
    pump1.setFuelAmount(2000);
    pump1.setState(0);

    Pump pump2 = new Pump();
    pump2.setName("pump2");
    pump2.setFuelAmount(2500);
    pump2.setState(0);

    Pump chosenPump = new Pump();

    if( pump1.getState()==0 && pump1.getFuelAmount()<0 ){
      chosenPump = pump1;
      System.out.println("Pump1 is free and has a fuel amount of: " 
       + (pump1.getFuelAmount()) );
    }

    else if ( pump2.getState()==0 && pump2.getFuelAmount()<0 ){
      chosenPump = pump2;
      System.out.println("Pump2 is free and has a fuel amount of: " 
       + (pump2.getFuelAmount()) );
    }
    //else{
    //  System.out.println("Must wait for the tanker. It should be here soon");
    //}

    Random r = new Random();

    Car car;

    for(int i = 0; i<TOTAL_CARS; i++){
      car = new Car(i, chosenPump);
      System.out.println("car" + car.getID() + " was created");

      (carThreads[i] = new Thread(car)).start();
      Thread.currentThread().sleep(r.nextInt(10000));

      line.enqueue(car);

      chosenPump.usePump( (Car)line.getfirst(), chosenPump, line );

      System.out.println("this is the new line size for gas: " + line.size());
    }//end for
  }//end try
  catch (Exception e){
  }
}//end of main

最佳答案

您正在检查pump1.getFuelAmount()<0

这将检查泵的燃油量是否为负。如果你想查看它的燃油量是否为正,你需要执行pump1.getFuelAmount()>0pump2.getFuelAmount()>0

关于java - 为什么我的 if 语句不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054967/

相关文章:

java - EC2 Java Web 应用程序到 RDS mySQL 数据库的连接超时

if-statement - 谁能解释为什么这个 brainfuck if/else 代码不起作用?

java - 如果 else 语句不起作用 - 为什么?

java - JPA——一个实体中相同类型的多个多对多列表

java - 如何确定服务器是否关闭了 Java 中的连接(收到 RST 数据包)?

java - 增加输入的数组索引

字符串比较中的 Bash glob

matlab - MATLAB 中的石头剪刀布

java - 使用java.util.logging,是否可以在一段时间后重新启动日志?

Java8 和夏令时