我的程序没有检查else-if语句

时间:2016-03-23 20:02:36

标签: java

我还不熟悉编码所以请耐心等待。我的程序总是检查if语句中的内容,并且即使值为false,也不会转到else-if语句。那么,为什么会这样呢?任何帮助将不胜感激。

for (int i = 0; i <= time; i++) { System.out.println("Clock loop = " + i);

        for (int j = 0; j < cashierArr.length; j++) {
            System.out.println("CashierArr at " + j + "  is busy? "
                    + cashierArr[j].busy);
            System.out.println(j);

            if (cashierArr[j].busy = true) {

                cashierArr[j].serveTime -= 1;
                System.out.println("Serve time = "
                        + cashierArr[j].serveTime);
                System.out.println("In busy");

            } else if (cashierArr[j].busy = false) {


                Customer tempCust = (Customer) queue.poll();


                cashierArr[j].serveTime = tempCust.serviceTime;
                System.out
                        .println("serveTime = " + cashierArr[j].serveTime);
                cashierArr[j].busy = true;

                System.out.println("In not busy");
            }

        }

4 个答案:

答案 0 :(得分:5)

请,请关注,

SyntaxError
  

您只使用了实际分配的单一作业   value为true意味着它始终保持 true

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)

# Unpack file data.
dat_file = np.loadtxt("filename.dat", unpack=True)

# Plot data.
ax.scatter(*dat_file, linewidth=2.0)
plt.show()

答案 1 :(得分:1)

1) if(cashierArr[j].busy = true)   

2) else if (cashierArr[j].busy = false)

在上面的语句中,您使用(=)赋值运算符not (==)比较运算符。

= Operator用于分配值而非比较,因此它实际上分配了

true的值意味着它始终为结果true,因此您的else statement永远不会被执行。

  

在两个陈述中改变==

1) if(cashierArr[j].busy == true)   

2) else if (cashierArr[j].busy == false)

答案 2 :(得分:0)

这是一个基本的语法问题更改

它为cashierArr [j] .busy

分配值true和false

if (cashierArr[j].busy = true)if (cashierArr[j].busy == true)

else if (cashierArr[j].busy = false)else if (cashierArr[j].busy == false

假设您的代码可能在忙字段中使用布尔值,并且您不希望在null的情况下执行任何操作。

答案 3 :(得分:0)

当你这样做时:

if (cashierArr[j].busy = true) {

您将变量指定为true而不检查其中的值...

因为你正在检查布尔值,所以写得足够了:

if (cashierArr[j].busy) {