我遇到了“错误”问题;“预计“

问题描述:

我有这个代码的问题。控制台向我显示这个错误,我无法弄清楚。 “第7行的file.java:错误:';'预计“我遇到了“错误”问题;“预计“

int adjacentElementsProduct(int[] inputArray) { 
    int numberofElements = inputArray.length(); 
    int [] products = new int [numberofElements]; 
    for (int firstNumber = 0; numberofElements > firstNumber; firstNumber++) { 
     products [firstNumber] = product (inputArray [firstNumber], inputArray [1+firstNumber]); 
    }; 
    int maxValue() { 
     int x = products [0]; 
     for (int i = 1; i < products.length; i++) { 
      if (products [i] > x){ 
       x = products [i]; 
      } 
     } 
     return x; 
    } 
    return maxValue; 
} 

如果任何人都可以帮助我这个,我真的很感激。 谢谢。

+1

这里有很多问题。数组没有'length()'方法,但是'length'字段。你正在其他方法中声明方法(你不能用Java来做到这一点)。在'adjacentElementsProduct'方法中,你返回未定义的maxValue变量,如果你想返回'maxValue'方法的结果,你需要把它写成'return maxValue();'(大多数方法都是为了处理一些参数,如果没有参数,至少通过'()'显示。在'maxValue'里面,你试图访问'products [0]',但是没有任何地方定义产品数组。也没有“产品”方法。 – Pshemo

功能maxValueadjacentElementsProduct内定义。

您在adjacentElementsProduct方法中声明方法maxValue,要更改此操作,您需要提取它并使其接受数组并返回int值为最大值。

int maxValue (int[] products) { 
    int x = products [0]; 
    for (int i = 1; i < products.length; i++) { 
     if (products [i] > x){ 
      x = products [i]; 
     } 
    } 
    return x; 
} 

的方法不验证输入数组的长度,你需要考虑到这一点

终于把它作为return maxValue(products);

代码是不正确格式化,因为你有一个方法maxValue方法adjacentElementsProduct的内部。

这是应该的:

int adjacentElementsProduct(int[] inputArray) { 
    int numberofElements = inputArray.length(); 
    int [] products = new int [numberofElements]; 
    for (int firstNumber = 0; numberofElements > firstNumber; firstNumber++) { 
     products [firstNumber] = product (inputArray [firstNumber], inputArray [1+firstNumber]); 
    } 
    return maxValue; 
} 

int maxValue() { 
    int x = products [0]; 
    for (int i = 1; i < products.length; i++) { 
     if (products [i] > x){ 
      x = products [i]; 
     } 
    } 
    return x; 
} 

此外,你必须一个一个额外的/没用分号结束for循环,包括maxValue方法的声明之前之后

希望它可以帮助

+0

我是一个初学者,所以我只是意识到我不能在方法中放置一个方法。你的评论对我很有帮助。谢谢。 :D。 –

+0

@Thang Nguyen还有,你的代码有几个问题。 Product是在adjacentElementsProduct方法中声明的数组,因此maxValue方法无法访问它,因此它必须接受它作为参数。而且,length是一个数组的属性,而不是一个方法,所以它应该被称为inputArray.length; 最后,你调用maxValue函数也不好,应该叫做return maxValue(); (当然,如果你真的想把它作为回报声明) – redbaron

要把每个人的意见都转化为文字。数组使用数据字段来访问长度,因为它不是您不使用的方法()。

array.length 

接下来的事情是你的for循环在最后一个括号的末尾有一个分号,它可以防止它发生。所以拿出来。

接下来,您不能在另一个方法中声明一个方法。在此方法外写入第二个方法,然后在另一个方法内调用它。

接下来你不能像你那样调用nextValue方法。即使你不能把它放在那里调用它,你必须调用它像这样:

你做了什么:

return maxValue; 

你应该做的:

/*something*/.nextValue(); 

修复这些东西你应该摆脱这些错误。