对于Java中if语句的每个循环

时间:2014-11-20 15:50:05

标签: java

public void addNewLamp (Lamp newLamp)
{
    for(Lamp lampName: lamps)
    {
        if(lampName.equals(newLamp.getLampName()))
        {
            System.out.println("no");
            Break;
        }
        else
        {
            System.out.println("New Lamp!");
            lamps.add(newLamp);
        }
    }
}

灯泡是灯泡阵列。

在查看调试器时,似乎for循环只是跳过所有内容,整个IF语句,怎么样?

编辑:代码已经过编辑以适应评论,仍然是同样的问题。

这与我链接的问题不同,因为它不仅仅是比较字符串,我现在已经改变了!=“if(!lampName.getLampName()。equals(newLamp.getLampName() ))“仍然得到相同的结果。感谢您的链接

1 个答案:

答案 0 :(得分:1)

我假设lampName是一个字符串?如果是这样,你需要这样做:

if(!lampName.getLampName().equals(newLamp.getLampName()))
编辑:正如他在评论中提到的ajb:如果你想遍历列表并修改它(通过在其中添加元素),你需要使用Iterator:

Iterator<Lamp> lampIterator = lamps.iterator();

while(lampIterator.hasNext()) {
   if(lampIterator.next().equals(newLamp.getLampName()))
        {
            System.out.println("no");
            break;
        }
        else
        {
            System.out.println("New Lamp!");
            lamps.add(newLamp);
        }
}

也是break关键字全是小写