【问题标题】:Required: Variable Found: Value必需:找到的变量:值
【发布时间】:2013-05-05 03:38:17
【问题描述】:
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 语句中的第二行作为意外类型返回 - 必需:找到的变量:值。我试过 == 显然没有用。有什么见解吗?

【问题讨论】:

    标签: java if-statement syntax-error


    【解决方案1】:

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

    切换这个

    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】:

      您已经反转了您的分配语句。改成

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

      【讨论】:

        【解决方案3】:

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

        也许你的意思正好相反:

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

        【讨论】:

          猜你喜欢
          • 2018-09-30
          • 1970-01-01
          • 1970-01-01
          • 2014-12-03
          • 1970-01-01
          • 1970-01-01
          • 2015-06-06
          • 1970-01-01
          • 2017-02-26
          相关资源
          最近更新 更多