2

代码: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)

我无法弄清楚我的生活出了什么问题。我知道这与返回数组有关,并且我已经完成了研究,但我仍然需要帮助。

谢谢!

4

2 回答 2

2

只有在输入 if 语句时才返回

if (genWhat == 0){

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

于 2013-03-19T23:39:58.783 回答
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;
        //}
    }
于 2013-03-19T23:51:43.933 回答