Dar*_*ess -1 java if-statement
我创建了一个Hostel类和一个Room类,Hostel该类包含一个ArrayList rooms,这个Arraylist中的一个值是Boolean available.在Hostel类中,我创建了一个if语句,它应该显示ArrayList中boolean available为true的任何条目,但它显示所有值,包括那些available为false但现在已经更改为true的值.任何人都可以告诉我哪里出错了.
public Room showAvail()
{
String theString = "Available Rooms";
if (Room.available == true)
for (Room room : rooms)
{
theString = theString + room.getRoomData() + "\n";
System.out.println(theString);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
有一些问题:
您似乎已将变量声明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);
}
}
Run Code Online (Sandbox Code Playgroud)