如果声明没有给出期望的结果

时间:2011-11-12 14:19:25

标签: java if-statement

我创建了一个Hostel类和一个Room类,Hostel类包含一个ArrayList rooms,此Arraylist中的一个值是布尔{{1} }。在available类中,我创建了一个if语句,该语句应该显示在ArrayList中布尔值Hostel为真的任何条目,而是显示所有值,包括available为false的值,但现在已改为真。谁能告诉我哪里出错了?

available

3 个答案:

答案 0 :(得分:7)

有一些问题:

  • 您似乎已将变量Room.available声明为静态变量,因此作为类的一部分,而不是房间的一部分。所有房间都将拥有相同的可用状态。

  • if语句在循环之外,因此对所有房间执行循环或根本不执行任何房间

  • 您声明要返回一个房间,但是您总是返回null。返回无效或为可用房间返回List<Room>

  • 您不需要测试if (variable == true),因为if (variable)会做同样的事情,尽管它不会做任何手臂。 (方式)

  • 为if语句使用花括号和缩进,以增加清晰度。 (方式)

这是一个代码片段。我不知道theString是获得所有房间还是仅获得所有房间,第二种情况是将其移入if括号内。

for (Room room : rooms)
{
       theString = theString + room.getRoomData() + "\n";
       if (room.available) {
           System.out.println(theString);
       }
}

答案 1 :(得分:1)

if声明不合适。尝试将其放入for循环中。

答案 2 :(得分:1)

由于您没有显示类声明,因此很难回答这个问题。

听起来好像你的if语句需要在for循环中:

for (Room room : rooms)
{
     if (room.available)
     {
         theString = theString + room.getRoomData() + "\n";
         System.out.println(theString);
     }
}

为了使这个工作,available字段需要是一个实例变量而不是一个静态变量,这可能是你问题的症结所在。