期中考试的Java错误

时间:2015-10-30 03:07:17

标签: java recursion

我在我的一个考试中有这段代码

public static int mystery(int a, int b)
{
    int result = 1;
    if (b > 1) return result *= ( a * a, b / 2);
    if (b % 2 == 1) return result *= a; 
    return result;
}

我试图找到的是,如果我们使用mystery(2, 5),最终的价值是什么。我认为答案是32,但这不是问题。问题是,当我尝试在Eclipse上实现该代码片段以查看我是否得到了正确的答案时,我收到了一条错误消息

The primitive type int of a does not have a field b
Syntax error on token ",", . expected

因为代码行读取if (b > 1) return result *= ( a * a, b / 2);。如果有人能告诉我为什么会出现错误消息以及如何解决它,我将不胜感激。你们还认为我应该告诉我的教授他的代码甚至没有编译而没有错误吗?

1 个答案:

答案 0 :(得分:2)

在您的代码中

if (b > 1) return result *= ( a * a, b / 2);

什么时候应该

if (b > 1) return result *= mystery( a * a, b / 2);