0

我正在编写一个 java 程序来制作一个简单的二十一点游戏。

我正在使用一组卡片对象作为用户手。

用户将获得两张手牌,但他们可以要求另一张牌,直到达到 5 张牌的限制。

出于这个原因,我制作了带有 5 个插槽的卡片对象数组,以允许将更多卡片添加到手牌中。

但是现在我无法在发牌时打印原始手牌,或者如果用户不要求完整的 5 张牌,因为我的数组将有null对象。

解决此问题的最快、最简单和最简单的方法是什么?

4

4 回答 4

4

将用于打印卡片值的行放在 if 语句中,该语句检查数组值是否为空。就像是:

for(int i = 0; i < cardArray.length ; i++)
{
  if(cardArray[i] != null)
      System.out.print(cardArray.value);
}
于 2011-11-21T18:50:26.513 回答
3

不要使用数组 - 使用 List,也许是 ArrayList。

然后,您可以简单地说:

for (Card card : hand) {
  System.out.println(card);
}

我假设您的 Card 类有一个 toString() 方法,而 'hand' 是一个 List<Card>

于 2011-11-21T18:57:00.343 回答
2

如您所知,您不能访问空对象内的任何内容。在这种情况下,您应该在打印时检查 5 张卡片中的每一张是否为空。

于 2011-11-21T18:51:10.857 回答
1

在执行任何操作之前检查 null:

if(x[i] == null){
    don't.do.anything();
}else {
    print.something();
}

这些方法显然是假的,但尝试类似的方法。

但正如上面的评论所说,你最好有一个清单。

于 2011-11-21T18:51:13.307 回答