首页 > 解决方案 > 为什么这个数组循环?

问题描述

我不明白为什么代码在第一次迭代后不会结束。一旦i = 1,循环不应该结束吗?因为 array.length 为 3,除以 2 为 1,而 1<1 为假。该数组是用于检测回文的代码,因此当前代码读取为 false,{2, 5, 2} 读取为 true。谢谢您的帮助。

public class Scratch {

    public static void main(String[] args) {
        boolean b = true; 
        int[] a = {2, 5, 8};

        for (int i = 0; i < a.length/2; ++i)
            if (a[i] != a[a.length - i - 1]) {
                b = false;
                break;
            }

        System.out.println(b);
    }
}

标签: java

解决方案


它确实在第一次迭代后结束。

它返回false是因为您将8其作为数组中的最后一个值写入。如果将其更改为2它返回的值true

在第一次迭代中,您面临的价值28main return false


推荐阅读