制作二十一点程序,无法从方法返回数组

时间:2013-03-19 23:35:50

标签: java arrays return

代码:https://gist.github.com/anonymous/71d1baf86eb8354cfbfe

当我运行它时,我遇到了这个问题:

    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
        This method must return a result of type int[]

        at NewBlackJack.genCards(NewBlackJack.java:25)
        at NewBlackJack.main(NewBlackJack.java:21)

我无法弄清楚我的生活是错的。我知道它与返回阵列有关,我已经完成了我的研究,但我仍然需要帮助。

谢谢!

2 个答案:

答案 0 :(得分:2)

只有在输入if语句

时才会返回
if (genWhat == 0){

当genWhat!= 0时,你根本不会返回任何东西。这就是抱怨的原因。所以你需要在if语句之后添加一个return语句。

答案 1 :(得分:0)

根据你的代码,似乎你应该简单地删除if语句,因为你的代码将0传递给genCards你的方法应该像这样编写:

public static int[] genCards(int genWhat)
    {
        Random r = new Random();
        /*if (genWhat == 0) remove this if statement
        { */
            int[] cards = {0,0,0,0,0,0}; 
            for (int i = 0; i < 4; i += 1)
            {
                cards[i] = 2 + r.nextInt(13);
                if (cards[i] > 11)
                {
                    cards[i] = 10;
                }
                if (cards[i] == 11)
                {
                    if (cards[i] < 2)
                    {
                        cards[5] += 1;
                    }
                    else
                    {
                        cards[6] += 1;
                    }
                }
            }
            System.out.println(cards);
            return cards;
        //}
    }