【发布时间】:2015-02-24 17:38:24
【问题描述】:
我有一个井字棋盘,在我检查胜利条件之前,我检查存储在 board[][] 集合中的对象是否为空。
例如:
if(board[0][j] == null || board[1][j] == null || board[2][j] == null)//and so on
//do something
else
//proceed with row evaluation
【问题讨论】:
-
嗯,你可以使用循环......但只有三个条件,它真的有那么糟糕吗?
-
问题是如果我使用循环,则第一个值有可能被评估为不为空并继续执行 if 的主体。我想要做的是获取一组数据,如果其中任何一个为空,则执行 else 语句。
-
嗯,不-您使用循环来确定是否有任何值为空,然后基于此创建
if语句。仅对于三个值,这将比您当前的方法更加冗长。随着条件数量的增加,它会变得越来越有吸引力。 -
你可以做
IntStream.range(0, 3).mapToObj(i -> board[i][j] == null).anyMatch(i -> i)。不过,对于 3 个值来说,这并不是一个好主意。 -
@JonSkeet 我希望能够评估任何范围的值,If 语句只需要一个参数为真。但我想看看是否至少有一个值为空。
标签: java if-statement