Java 学习问题数组



有人可以向我解释答案吗?x最后等于什么?

int[] vs = {4, 15, 6, 26, 7, 8}; 
int x = vs[0]; 
for (int v : vs) 
   { 
     if (v < x) { x = v; }
   }

我会再试一次,因为我发现 sfThomas 的答案有点令人困惑。

所以:预先回答您的问题:x 将等于 4。你的小算法的目的只是在给定的值列表中找到最小的(数字)值。

详细说明:

  • 在第 1 行中,您设置了一个整数值(也称为"整数")的数组(将其视为值的有序列表)。此数组称为 vs

  • 在第 2 行中,将变量x分配给 vs 中的第一个元素。这恰好是 4

  • 第 3 行声明了一个 for-each 循环(Java 中的官方术语:"Enhanced for Loop")。它为数组的每个元素执行循环体(第 4-6 行vs。在每次迭代中,v将保存当前处理的元素的值。处理顺序等于申报顺序。因此:在第一次迭代中,v 将等于 4,在第二次迭代中等于 15,依此类推。下面给出了一个传统的 for 循环来实现相同的目标。

  • 循环的主体(第 5 行)包括检查v是否小于 x 。这种情况永远不会发生(即数组中没有小于vs第一个元素的值vs的值),因此括号x = v;中的代码(每次找到如此小的元素时都会将x重新分配给这个较小元素的值)永远不会被执行。换句话说:x始终保持其初始值vs[0]4

我希望这对初学者来说足够清楚。

for (int i=0; i<vs.length; i++) {
    int v = vs[i];
    // rest of the loop body
}

它查找数组中的最小元素 - 最后一部分遍历每个元素,如果找到一个小于前一个值的元素,则将其保存在变量"x"中。

for (int v : vs) - 这将执行 vs 数组中每个值之后的块,将变量 v 分配给给定值。看看这个。

{ if (v

最新更新