【问题标题】:i'm getting an error the operator + is undefined for the argument type(s) int[] int我收到一个错误,运算符 + 未定义参数类型 int[] int
【发布时间】:2021-09-05 06:26:28
【问题描述】:

我不知道为什么会出现此错误 我将该行中的“arr + 1”更改为“arr [0] + 1”,但仍然没有解决它,而是出现错误“将方法从int [] int更改为int int” 并忽略我没有调用该函数。

package Ds.Recursion;

public class practice1 {

public static void main(String[] args) {
    

}
 static boolean sorted(int arr[],int n) {
  if(n==1) {
      return true;
  }
   //getting error in the next line
   boolean restArray = sorted(arr+1,n-1);
   return(arr[0]<arr[1] && restArray) ;
 }
}

【问题讨论】:

  • 当您在sorted() 中执行arr+1 时,您期望会发生什么? Java 没有数组切片。
  • 另外,这段代码应该做什么?请记住,Java 中存在命名约定,并且您绝对应该遵守它们:如果您的方法检查某个数组是否已排序,请将其命名为 isSorted,而不是 sorted。遵循约定意味着当需要向人们寻求帮助时,您向他们展示的代码看起来与任何其他 Java 代码相同。所以请注意:类使用 CamelCase(类名中每个不同单词的大写字母),并且变量以其所扮演的角色命名,例如boolean restArray 是一个布尔值,它不能是一个数组,所以这是一个坏名字。

标签: java arrays recursion


【解决方案1】:

线

boolean restArray = sorted(arr+1,n-1);

让我觉得您已经获得或找到了使用 C 或 C++ 的示例。论文是非常不同的语言。在 Java 中对数组 (arr+1) 进行算术运算毫无意义。

您的命名表明这是某种学校作业。 我建议您确保使用您的类用来说明实现的语言。

至于Java的翻译,@RaffleBuffle 给了你一个合理的地道解决方案。

【讨论】:

    猜你喜欢
    • 2017-06-04
    • 1970-01-01
    • 2014-06-02
    • 2018-05-25
    • 2018-06-30
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多