Java学习数组的问题

标签 java arrays

有人能给我解释一下答案吗? 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 中的官方术语:“增强型 for 循环”)。它对数组 vs 的每个元素执行循环体(第 4-6 行)。在每次迭代中,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
}

关于Java学习数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34910247/

相关文章:

java - 如何让 twilio 在 java 中使用代理

java - 为什么 "@PathVariable"无法在 Spring Boot 中的接口(interface)上工作

java - 能否利用Dijkstra算法找到最快返回路由节点的方法?

javascript - jQuery 替换,使用数组

arrays - 无法在 swift 中将数组数据转换为 CLLocationCooperative2D 以在 map View 中绘制折线

java - Play框架1.2.4 : NullPointerException in the constructor of play.异常.MailException

java - 为什么我无法在此代码中使用 setLocation 定位 JButton?

java - 快速开发基于 GWT-EJB 的应用程序的方法

Java相当于python数组初始化

c - 如何修复此函数以使其返回两个字符串的串联?