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

时间:2015-12-09 23:22:36

标签: java

我正在尝试编写一个打印出数组的每个索引的递归方法。我的手牌代表一张五张牌,使用长度为5的Card []牌。到目前为止,我的方法是以下。它有效,但有没有更好的方法来做到这一点,而不是从索引的整数参数开始?请帮忙。

public static void printHandForward (Hand hand, int index) {
    if(index == hand.cards.length) {
        return;
    }
    else {
        Card.printCard(hand.cards[index]);
        index++;
        printHandForward(hand, index);
    }
}

2 个答案:

答案 0 :(得分:1)

如果必须使用递归,则必须以某种方式使用int参数调用此方法。

您只需添加一个只需Hand的重载,它会调用您当前的方法:

public static void printHandForward(Hand hand) {
  printHandForward(hand, 0);
}

但是,避免重复并仅使用增强的for语句会更容易。

答案 1 :(得分:0)

为什么你需要一个递归方法,而你不能只使用:

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]);
    }
}