[英]I don't understand this loop
我正在尝试用Java制作纸牌游戏,我想让纸牌显示其西服和编号,所以一个4颗钻石将是4(钻石),除了(钻石)将是U + 2666 Unicode 。
我在书中展示卡片套装的示例如下,但我并不十分了解。 我习惯于使用i <0,i ++的循环。 有人可以帮忙解释一下,还是至少可以将其与普通的for循环进行比较? 谢谢!
另外,我可以只使用switch语句显示西装吗?
private String getCardsDisplay() {
StringBuilder cards = new StringBuilder();
for (Card card : hand.getCards()) {
cards.append(" ");
cards.append(card.getRank());
switch (card.getSuit()) {
case CLUBS:
cards.append("\u2663");
break;
case DIAMONDS:
cards.append("\u2666");
break;
case HEARTS:
cards.append("\u2665");
break;
case SPADES:
cards.append("\u2660");
break;
}
}
return cards.toString();
}
这是一种特殊的循环,称为“ for each”。 这意味着它将按顺序遍历hand.getCards()返回的数组或列表中的每个对象。 例如,如果它是一张读{{10“,” J“,” Q“,” K“,” A“}的纸牌数组,它将获取Card对象并按该顺序循环遍历它们。 它是为方便程序员而编写的,也使对“每个方面”了解的人都更容易阅读代码。
那是一个特殊的“增强循环”。 在Java 5之前的Java版本中,该循环将写为:
Card[] cards = hand.getCards();
for (int i = 0; i < cards.length; i++) {
Card card = cards[i];
// the rest of the loop
}
这有点麻烦。 因此,当Java 5出现时,它合并了用于循环遍历数组的新语法。 那就是你在这里看到的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.