java - 查找数组 Java 中最后一次出现的位置?

标签 java loops

我是 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
}

关于java - 查找数组 Java 中最后一次出现的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698350/

相关文章:

java - 扩展 HashMap 为未找到的键返回空 HashSet

java - 格式化 toString() - 换行

java - 如何将 CDI @ApplicationScoped bean @Inject 到 @RequestScoped JAX-RS bean 中?

c - 无法在C程序中的for循环外使用变量值

java - 使用循环和 if 语句从方法返回时出错

java - 将进程附加到调试 session : javaw. exe 未显示

java - 停止(getSelf())与停止(this.getSelf())

javascript - 使用 javascript 生成动态 onclick 事件

javascript - 合并循环中的对象

mysql - 单个 MySQL 查询中的递归?