Java 包含递增整数的数组

Java 包含递增整数的数组,java,arrays,boolean,Java,Arrays,Boolean,我从事下列工作已经有一段时间了,但我想不出来 给定一组分数,如果每个分数等于或大于之前的分数,则返回true。数组的长度为2或更多 分数增加([1,3,4])→ 真的 分数增加([1,3,2])→ 假的 分数增加([1,1,4])→ 真的 我的许多尝试之一: public boolean scoresIncreasing(int[] scores) { int i = 0; if(scores[i]<=scores[i+1]){ i++; return true;

我从事下列工作已经有一段时间了,但我想不出来

给定一组分数,如果每个分数等于或大于之前的分数,则返回true。数组的长度为2或更多

分数增加([1,3,4])→ 真的

分数增加([1,3,2])→ 假的

分数增加([1,1,4])→ 真的

我的许多尝试之一:

public boolean scoresIncreasing(int[] scores) {
  int i = 0;
  if(scores[i]<=scores[i+1]){
    i++;
    return true;
  }
  return false;
}
公共布尔分数递增(int[]分数){
int i=0;

如果(在每个示例中得分[i],
得分[0]
我不认为循环是必要的


它是(或递归,但从循环开始)。您的代码只检查
分数[0]我建议您从循环开始(即,您只比较两个数字)。您可以从第二个分数开始循环,如果任何分数小于前一个分数,则您的条件为
false
(您可以立即返回)。如果到达数组的末尾,并且没有任何分数违反条件return
true
。例如

public static boolean scoresIncreasing(int[] scores) {
    for (int i = 1; i < scores.length; i++) {
        if (scores[i] < scores[i - 1]) {
            return false;
        }
    }
    return true;
}
为该情况添加一个防护,如

if (scores.length < 2) return true;
if(scores.length<2)返回true;

是的,循环是必要的。否则,您只是告诉编译器检查元素0和元素1。您需要将代码更改为

public boolean scoresIncreasing(int[] scores, int length)
    for(int i=0; i<length-1; i++) {
        if(scores[i]>scores[i+1])
            return false;
    }
    return true;
}
公共布尔分数递增(int[]分数,int长度)
for(inti=0;iscores[i+1])
返回false;
}
返回true;
}
作为对编辑2的响应:第一次检查时仍返回true。请参阅上面的代码以供参考!!!

循环(或递归)对于这一个来说确实是必要的,因为您打算检查数组的所有元素。如果没有循环,您就不能使用正在递增的
i
的新值,因此
i++
是无用的,导致它只检查
分数[0]
分数[1]
。这也是它总是返回true的原因:它只检查前两个元素,在示例测试中,前两个元素都满足条件

编辑:在第二次编辑中,在第一次满足条件时仍返回true。这意味着您仍然只检查前两个元素。相反,您应该做的是逻辑性的,将每个新结果与存储的值进行比较,并在最后返回该值,这样当您看到ord中的两个值时就不会立即返回呃

if (scores.length < 2) return true;
public boolean scoresIncreasing(int[] scores, int length)
    for(int i=0; i<length-1; i++) {
        if(scores[i]>scores[i+1])
            return false;
    }
    return true;
}