我花了很长时间才弄清楚这个练习,但我被困在这里了。我需要编写一个 boolean 方法,它将一个数组作为参数,如果数组中的数字按降序排列,则应返回 true。 Bu 任何时候我尝试我都有相同的值或错误。这是我的代码:
public class Question1c{
public static void main (String[] args){
int[] arr = {1, 9, 3, 4, 5, 6};
boolean product = isDecreasing(arr);
System.out.println(product);
}
public static boolean isDecreasing (int[] numbers){
int first = numbers[0];
for (int i : numbers){
if(first <= i){
first = i;
return true;
}
//else{
// return false;
//}
}return false;
}
}
最佳答案
您的代码中的问题是您无法返回 true
直到你遍历整个数组。但是,您可以返回 false
一旦您检测到“倒置” - 即您之前看到的数字后面的数字 大于 之前的数字的情况。
您相当接近一个可行的解决方案 - 您需要删除 return true
, 取消注释 else
, 并更改最后的 return false
至 return true
.
为了使您的代码更具可读性,重命名 first
至 prior
.还要考虑更改 for
的“foreach”版本循环到常规 for
跳过数组初始元素的循环。这将使您能够检测到递减顺序,而不是您当前检测到的非递增顺序。
关于java - 带有数组参数的 boolean 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23419281/