Java 数组的代码跟踪

Java Code Tracing of Arrays

我在完成这项学校作业时遇到了问题,您必须使用跟踪 table 来跟踪此数组的代码,但我仍然无法找到答案。

当我浏览代码时,我到达 data[i] 的索引位置为 0 的行,即 50。然后我对 table 是否停止在那条线上感到困惑,因为它无法继续,因为 data[i] 不小于 data.length。那么它到此结束还是我错了?

public static int ???(int[] data) {

    int result = 1000;

    for (int i = 0; i < data.length; i++) {
        if (data[i] < result) {
            result = data[i];
        }
    }

    return result;
}

数据为

{ 50, 43, 22, 30 }

for (int i = 0; i < data.length; i++)

您将 idata.length 进行比较,而不是将 data[i]data.length 进行比较,因此您的循环 运行 符合预期(即不会在 i = 0 处结束)

经过测试,您认为下面这行代码是做什么的?

结果=数据[i];

result的最终值应该是return22。这是因为循环是从i < 4开始的,这意味着它不包括循环中的4th索引位置。最后的循环在 3rd 索引位置结束,因为 data[i] 不大于结果。 3rd 索引为 22,结果为 1000,由于 22 不大于 1000,程序 returns 22.