当前位置: 首页 > 知识库问答 >
问题:

如果数组不是降序或升序,为什么我的代码不会返回false?

周龙光
2023-03-14
public class SmallestLargest {

    public static void main(String[] args) {
        int [] arr = {3,6,2,1,23,6,7,54,3,2};
        System.out.println(isIncreasing(arr));

    }
    public static boolean isIncreasing(int[]arr)
    {
        for(int i=1; i<arr.length;i++)
        {
            if(arr[i] > arr[i+1] || arr[i] < arr[i+1] )
                return true;
        }
        return false;
     }

    }

因此,如果数组是int[]arr={1,2,3},它应该返回true,如果它的降序也应该是true,否则它应该返回false,但我的输出总是true。

共有1个答案

淳于坚壁
2023-03-14

如果要检查数组是否一致,则必须更改检查:

public class SmallestLargest {

    public static void main(String[] args) {
        int [] arr = {3,6,2,1,23,6,7,54,3,2};
        System.out.println(isIncreasing(arr));

    }
    public static boolean isIncreasing(int[]arr)
    {
        for(int i=0; i<arr.length-1;i++)
        {
            if( arr[i] > arr[i+1] )
                return false;
        }
        return true;
     }

    }

循环必须以arr.length-1结束,如果没有,则获得ArrayIndexOutOfBoundsException

必须从0开始,因为Java中的数组是从零开始的。

 类似资料:
  • 我一直试图这样做了一段时间,但我不能这样做。 如何将默认的升序更改为降序?另外,还有什么简单的方法可以对数组进行排序吗?

  • 问题内容: 为什么更改总和顺序会返回不同的结果? = = 双方的Java和JavaScript的返回相同的结果。 我知道,由于以二进制表示浮点数的方式,某些有理数( 例如1/3-0.333333 … )无法精确表示。 为什么简单地更改元素的顺序会影响结果? 问题答案: 也许这个问题很愚蠢,但是为什么仅仅改变元素的顺序会影响结果呢? 它将根据值的大小更改四舍五入的点。作为示例 _样的_事情,我们所看

  • 为什么改变求和顺序会返回不同的结果? = Java和JavaScript都返回相同的结果。 我知道,由于浮点数在二进制中的表示方式,一些有理数(如1/3-0.333333...)不能精确表示。 为什么简单地改变元素的顺序会影响结果?

  • 如果参数的类型是int或float,函数应该返回>函数输入的绝对值。 否则,函数应返回“nope” 我已经完成了第一个任务,但我认为我已经完成了任务

  • 我使用导航组件并在一个RecolyerView(MVVM架构,所以这个片段有一个viewmodel)中加载数据,如果我移动到另一个片段,然后导航回到有viewmodel的片段,那么viewmodel的livedata是空的,但我不知道为什么。如果我正确地知道,我就不需要手动调用来持久化数据,因为无论如何都会这样做。我将对象存储在livedata中,并且该类是extends Parcelable。

  • 我已经把这个回文函数放在PHP中 问题是:如果提供的字符串是回文,则函数返回1,否则不返回任何内容。 我希望它返回真假。我的错误在哪里?