Java 按顺序打印每个数组索引值的递归方法

Java 按顺序打印每个数组索引值的递归方法,java,Java,我试图编写一个递归方法,输出数组的每个索引。My Hand类表示一手五张牌,使用长度为5的牌[]张。以下是我到目前为止的方法。它可以工作,但是有没有更好的方法来代替从索引的整数参数开始呢?请帮忙 public static void printHandForward (Hand hand, int index) { if(index == hand.cards.length) { return; } else { Card.printCar

我试图编写一个递归方法,输出数组的每个索引。My Hand类表示一手五张牌,使用长度为5的牌[]张。以下是我到目前为止的方法。它可以工作,但是有没有更好的方法来代替从索引的整数参数开始呢?请帮忙

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注释不能用英语解析。