Java 按顺序打印每个数组索引值的递归方法
我试图编写一个递归方法,输出数组的每个索引。My Hand类表示一手五张牌,使用长度为5的牌[]张。以下是我到目前为止的方法。它可以工作,但是有没有更好的方法来代替从索引的整数参数开始呢?请帮忙Java 按顺序打印每个数组索引值的递归方法,java,Java,我试图编写一个递归方法,输出数组的每个索引。My Hand类表示一手五张牌,使用长度为5的牌[]张。以下是我到目前为止的方法。它可以工作,但是有没有更好的方法来代替从索引的整数参数开始呢?请帮忙 public static void printHandForward (Hand hand, int index) { if(index == hand.cards.length) { return; } else { Card.printCar
public static void printHandForward (Hand hand, int index) {
if(index == hand.cards.length) {
return;
}
else {
Card.printCard(hand.cards[index]);
index++;
printHandForward(hand, index);
}
}
为什么需要递归方法,而不能仅使用:
public static void printHandForward (Hand hand) {
for(Card card: hand.cards) {
Card.printCard(card);
}
}
?
如果确实需要递归方法,我建议使用以下代码:
printHandForward(hand, hand.length);
...
public static void printHandForward (Hand hand, int index) {
if(index > -1) {
printHandForward(hand, index -1);
Card.printCard(hand.cards[index]);
}
}
如果必须使用递归,则必须以某种方式使用int参数调用此方法 您可以简单地添加一个重载,该重载只需握住
的手
,即可调用当前方法:
public static void printHandForward(Hand hand) {
printHandForward(hand, 0);
}
但是,,避免递归,只使用增强的for语句会容易得多。您不能让它是递归的。更好的方法是使用增强的for语句,而不是递归。因此,您调用此方法并传入第一个索引?@vishalgajera您理解重载的含义吗?@vishalgajera注释不能用英语解析。