必需:找到变量:值

时间:2013-05-10 12:40:54

标签: java if-statement syntax-error

public static int biggestArrayGap(int []a, int n)
{
int biggestGap = Math.abs(a[1]-a[0]);
    for (int i=1; i<n-1; i++)
{
    if (Math.abs(a[i]-a[i-1]) > biggestGap)    
        Math.abs(a[i]-a[i-1]) = biggestGap;
}
    return biggestGap;
}

由于某种原因,if语句中的第二行是以意外类型的形式返回:变量found:value。我试过==这显然不起作用。有什么见解吗?

3 个答案:

答案 0 :(得分:5)

您已撤消了您的分配声明。将其更改为

biggestGap = Math.abs(a[i]-a[i-1]);

答案 1 :(得分:5)

您在assign语句中切换了操作数。

切换此

Math.abs(a[i]-a[i-1]) = biggestGap;

到这个

biggestGap = Math.abs(a[i]-a[i-1]);

Math.abs(a[i]-a[i-1])只返回一个int值(没有变量引用或类似的)。因此,您尝试为值分配新值。这是不可能的。您只需为变量分配新值即可。

答案 2 :(得分:0)

您正尝试将biggestGap的值分配给Math.abs()返回的数字。当然,您不能,因为该值取决于Math.abs()包含的内容以及它如何处理其参数。

也许你的意思相反:

biggestGap = Math.abs(a[i]-a[i-1]);