【问题标题】: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]);