如果boolean = true不起作用,则删除平面

时间:2012-12-13 12:37:14

标签: hashmap c++-cli

当用户输入他们已落地时,我正试图移除我的飞机。这不起作用。任何人都可以看到我的代码有任何问题,为什么它不起作用。

这是我的代码:

平面

static boolean isLanded;
public boolean isLanded() {
        return isLanded;
    }


    public void setLanded(boolean isLanded) {
        this.isLanded = isLanded;
    }

PlaneStore

public void removeLandedPlanes(PlaneStore store)
    {
        if(Plane.isLanded = true)
        {
            airlineMap.remove(store);
        }
    }

MainApp

case 3:
                    System.out.println("Remove Landed Planes.");
                    airlineMap.removeLandedPlanes(airlineMap);
                    airlineMap.print();
                    break;

PlaneStore中的HashMap声明

HashMap<String, TreeMap<String, Plane>> airlineMap;

    public PlaneStore() 
    {
        airlineMap = new HashMap<String, TreeMap<String, Plane>>();
    }

然后在主PlaneStore airlineMap = new PlaneStore();

这似乎使每个飞机对象都有isLandedfalse

2 个答案:

答案 0 :(得分:2)

if(Plane.isLanded = true)

请注意,这是将值true分配Plane.isLanded。您希望使用比较运算符==而不是=

if(Plane.isLanded == true)

由于这已经是boolean,您实际上应该完全忽略== true

if(Plane.isLanded)

答案 1 :(得分:0)

您正在分配给Plane.isLanded,而不是为了平等而进行测试

 if(Plane.isLanded = true)

应该是

 if(Plane.isLanded == true)

你可以简单地用

来避免这种情况
if (Plane.isLanded)

或将常数术语放在左侧

if (true == Plane.isLanded)
如果你犯了=而不是==

的初步错误,那么

就不会编译