Java foreach 对原语的迭代顺序是否精确定义?

2024-01-11

示例代码:

int a[] = new int[]{0, 1, 2, 3};
int result = 0;
for (int i : a)
    result += i;

循环是否保证迭代a[0], a[1], a[2], a[3]以该顺序?我坚信答案是肯定的,但是这一页 http://java.sun.com/j2se/1.5.0/docs/guide/language/foreach.html似乎并没有明确地表明秩序。

有可靠的参考吗?


根据JLS,增强型for陈述 http://java.sun.com/docs/books/jls/third_edition/html/statements.html#259170,你的 for 循环相当于

int[] array = a;
for (int index = 0; index < a.length; index++) {
    int i = array[index];
    result += i;
}

"where array and index是编译器生成的标识符,与增强型范围内的任何其他标识符(编译器生成的或其他方式)不同for语句发生。”(此处稍微解释一下变量名称)。

所以是的:订单绝对有保证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java foreach 对原语的迭代顺序是否精确定义? 的相关文章

随机推荐

  • 连接被拒绝的解决方法是什么:连接

    我正在尝试从另一个网站获取信息 当我尝试做的时候 URL url new URL theSite url getContent 它抛出一个Connection refused connect exception 这是否意味着该网站将不允许自
  • FormEditor 的“与编辑器链接”

    我正在寻找 与编辑器链接 的解决方案 但对于 FormEditor 而不是 ViewPart 如中所述http murygin wordpress com 2012 06 13 link eclipse view to editor htt
  • Boost::asio async_wait 处理程序签名

    我正在查看 boost asio 示例 我正在看实施例4 http www boost org doc libs 1 38 0 doc html boost asio tutorial tuttimer4 html 令人困惑的是 此示例中的
  • 如何防止结果集在连接关闭时失效?

    我想从执行查询并关闭连接的函数中传递结果集 但是 一旦其父 Connection 关闭 ResultSet 就会失效并抛出异常 java sql SQLException Operation not allowed after Result
  • 如何使用 TSQL 将属性添加到现有根 XML 节点?

    我已经用 SQL 构建了一些 XML declare requestXML xml set requestXML select dataXML for xml raw rtEvent 我现在的一般输出遵循与此类似的模式
  • 休息; VS 继续;与返回;

    我从以下网站下载了一份用 php 编写的免费新闻通讯Hotscripts com http hotscripts com 我更新了一些代码以添加新功能 但我看到了一些我不明白的东西 在代码中我看到 foreach if break else
  • Ionic 2 不生成 scss 源映射。 “main.css.map”包含“null”

    你能帮我理解为什么 Ionic 2 不生成 scss 源映射吗 在 ionicserve 之后 我导航到 www build 文件夹 有 main css map 但它包含 null 而不是生成的源映射 如何修复它 有人遇到过这个问题吗 您
  • 如何在react-router v6中使用element传递props?

    我正在尝试将 MainSection 组件重用于两个不同的目的 单个故事和所有故事 为了实现此目的 我想在转到该组件的渲染的路由中传递一个属性 home Home 是 true 或 false 我想根据该布尔值渲染 MainSection
  • 用户:使用selenium传递代理

    在程序中使用用户验证代理的最佳 最简单方法是什么 我目前有这个 但我需要在浏览器打开时填写用户名和密码 from selenium import webdriver PROXY 123 123 123 243 80 chrome optio
  • Android Webview 和 Facebook 登录不工作

    我遇到了问题WebView我正在开发的应用程序 我们有一个通过 android 显示的响应式网站WebView 该网站有一个使用 Facebook 登录选项 这在移动浏览器和网站本身上运行良好 每当我尝试使用WebView应用程序登录使用F
  • 为什么循环中的任务工厂打印超出循环索引?

    我正在学习在 C 中使用任务并行库 TPL 并编写了以下代码 您可以复制粘贴并运行它 using System using System Collections Generic using System Linq using System
  • 使用 PHP S3 类时出现 RequestTimeTooSkewed 错误

    这是我的第一个PHP项目 所以我真的一点也不了解PHP 我想做的是使用 PHP S3 类将文件上传到 S3 存储桶 一个示例代码片段昨天可以工作 但是当我今天再次开始使用它时 几乎完全相同的代码停止工作 现在我只收到 putObject 函
  • 如何测试 Braintree 交易退款?

    我正在尝试对 Braintree 交易退款进行测试 但遇到了问题 Braintree 的 API 仅允许您为已结算的交易发放退款 然而 在沙箱环境中创建的交易仅每 24 小时 结算 一次 因此 当我尝试在测试套件中退款时 退款总是被拒绝 因
  • NSPopupButton 中带有绑定的分隔符项

    的内容NSPopupButton绑定到一个NSArray字符串 我们如何通过绑定插入分隔符项目 The 字符串 就像在过去 经典时代一样 不起作用 即字面上显示为 菜单项 是否有任何带有标准 Cocoa 类和绑定的开箱即用的解决方案 这应该
  • CATextLayer旋转?

    这应该确实有效 但不是 CATextLayer textLayer CATextLayer layer textLayer string text textLayer setValue NSNumber numberWithDouble M
  • 如何在 Pygame 中插入滑块?

    我目前正在 Python 上进行物理模拟 使用 Pygame 模拟室内的气体云 我的问题是我无法在代码中插入工作滑块来更改参数的值 我有一个运行模拟的 运行时 循环 当我想在其中插入工作滑块时 模拟就会停止 我无法让模拟和滑块同时工作 下面
  • 为什么正则语言的补语仍然是正则语言?

    根据我的教科书 只要L1是正则语言 L1 A L1的补集就是正则语言 A 不是还包括上下文无关语言 上下文相关语言和递归可枚举语言吗 A L1 也将包括所有这些 不是吗 那怎么可能有规律呢 在有限状态机的表示下 我理解为什么补码仍然是常规语
  • 向静态 Azure 网站添加身份验证

    我们有一个 Azure 网站 托管一个静态站点 仅一些 HTML CSS Javascript 然后通过 AJAX 调用与我们的 Azure 移动服务进行通信 我们想向该站点添加一些非常简单的身份验证 只需静态用户名 密码就足够了 请推荐最
  • 如何在 scipy.optimize 中使用 fmin_cg 获得正确的尺寸

    我一直在尝试使用 fmin cg 来最小化逻辑回归的成本函数 xopt fmin cg costFn fprime grad x0 initial theta args X y m maxiter 400 disp True full ou
  • Java foreach 对原语的迭代顺序是否精确定义?

    示例代码 int a new int 0 1 2 3 int result 0 for int i a result i 循环是否保证迭代a 0 a 1 a 2 a 3 以该顺序 我坚信答案是肯定的 但是这一页 http java sun