我在这个学校工作中遇到麻烦,你必须使用跟踪表来跟踪这个数组的代码,但是我很难找到答案。
当我浏览代码时,我到达data[i]
给定索引位置为0的行,即50
。然后我感到困惑的是,由于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}
答案 0 :(得分:1)
测试结束后,您认为下面的代码行是做什么的?
result = data [i];
答案 1 :(得分:0)
for (int i = 0; i < data.length; i++)
您将i
与data.length
进行比较,而不是将data[i]
与data.length
进行比较,以便您的循环按预期运行(即不会在i = 0结束)
答案 2 :(得分:0)
result 的最终值应该是 return
22。这是因为循环从 i < 4
开始运行,这意味着它不包括循环中的 4th
索引位置。最后一个循环在 3rd
索引位置结束,因为 data[i]
不大于结果。 3rd
索引为 22,结果为 1000,由于 22 不大于 1000,因此程序返回 22
。