我是Java新手。我想使用循环获取数组中最后一次出现的索引。但是,我不明白为什么我不能。

这是数组:
    {2、3、4、5、4、5、3}

我想获取其中最后4个的索引。

我的代码是:

public static void main(String args[]){
    int[] nums = {2, 3, 4, 5, 4, 5, 3};

    int pos4 = 0;
    for (int k = nums.length -1; k >= 0; k--){
        if (nums[k] == 4){
            pos4 = k;
            break;
        }
    System.out.print(pos4);
    }
}


其结果是:00 ??

当我更改为:

public static void main(String args[]){
    int[] nums = {2, 3, 4, 5, 4, 5, 3};

    int pos4 = 0;
    for (int k = nums.length -1; k >= 0; k--){
        if (nums[k] == 4){
            break;
        }
    System.out.print(k);
    }
}


我有65 ???

但是,当我直接从循环中打印时,我可以正确获取索引:

public static void main(String args[]){
    int[] nums = {2, 3, 4, 5, 4, 5, 3};

    int pos4 = 0;
    for (int k = nums.length -1; k >= 0; k--){
        if (nums[k] == 4){
            System.out.print(k);
            break;
        }
    }
}


谁能告诉我为什么?非常感谢!

最佳答案

您的第一个示例是从循环内进行打印。一旦满足条件,您就退出循环,从不打印最终值。

public static void main(String args[]){
    int[] nums = {2, 3, 4, 5, 4, 5, 3};

    int pos4 = 0;
    for (int k = nums.length -1; k >= 0; k--) {
        if (nums[k] == 4){
            pos4 = k;
            break;
        }
    }
    System.out.print(pos4); // moved outside of loop to print final value
}

10-06 14:03
查看更多