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++)
您将 i
与 data.length
进行比较,而不是将 data[i]
与 data.length
进行比较,因此您的循环 运行 符合预期(即不会在 i = 0 处结束)
经过测试,您认为下面这行代码是做什么的?
结果=数据[i];
result的最终值应该是return
22。这是因为循环是从i < 4
开始的,这意味着它不包括循环中的4th
索引位置。最后的循环在 3rd
索引位置结束,因为 data[i]
不大于结果。 3rd
索引为 22,结果为 1000,由于 22 不大于 1000,程序 returns 22
.
我在完成这项学校作业时遇到了问题,您必须使用跟踪 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++)
您将 i
与 data.length
进行比较,而不是将 data[i]
与 data.length
进行比较,因此您的循环 运行 符合预期(即不会在 i = 0 处结束)
经过测试,您认为下面这行代码是做什么的?
结果=数据[i];
result的最终值应该是return
22。这是因为循环是从i < 4
开始的,这意味着它不包括循环中的4th
索引位置。最后的循环在 3rd
索引位置结束,因为 data[i]
不大于结果。 3rd
索引为 22,结果为 1000,由于 22 不大于 1000,程序 returns 22
.