8
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;
}

For some reason, the second line in the if statement is returning as unexpected type– required: variable found: value. I tried == and that obviously didn't work. Any insight?

4

3 回答 3

10

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

切换这个

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

对此

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

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

于 2013-05-10T12:42:43.683 回答
5

您已撤消了您的分配语句。将其更改为

biggestGap = Math.abs(a[i]-a[i-1]);
于 2013-05-10T12:42:36.003 回答
0

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

也许你的意思相反:

biggestGap = Math.abs(a[i]-a[i-1]);
于 2013-05-10T12:43:37.643 回答