为什么使用 for 循环而不是 while 循环? [复制]

2024-02-26

可能的重复:
使用 for 循环还是 while 循环进行迭代? https://stackoverflow.com/questions/99164/iterate-with-for-loop-or-while-loop
C 中的循环 - for() 或 while() - 哪个最好? https://stackoverflow.com/questions/2242646/loops-in-c-for-or-while-which-is-best

什么时候应该使用for循环而不是while loop?

我认为以下循环是相同的,除了语法之外。如果是这样,那么为什么选择其中一个而不是另一个呢?

int i;
for (i = 0; i < arr.length; i++) {
  // do work
}

int i = 0;
while (i < arr.length) {
  // do work
  i++;
}

就您而言,除了少一行代码之外,您不会获得太多收益for loop.

但是,如果您像这样声明循环:

for(int i = 0; i < x; i++)

你设法保持i在循环的范围内,而不是让它逃到代码的其余部分。

此外,在 while 循环中,变量声明、条件和增量位于 3 个不同的位置。通过 for 循环,一切都集中在一个方便、易于阅读的地方。

最后的想法:
还有一个重要的注意事项。两者之间存在语义差异。一般来说,While 循环意味着具有无限数量的迭代。 (即,直到文件被读取......无论其中有多少行),并且 for 循环应该具有更明确的迭代次数。 (循环遍历集合中的所有元素,我们可以根据集合的大小来计数。)

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

为什么使用 for 循环而不是 while 循环? [复制] 的相关文章

  • 循环时,.iter() 与引用 (&) 有何不同?

    在玩 Rust 时 我发现你可以循环Vecs and HashMaps 可能还有其他 通过引用 而不是使用 iter let xs vec 1 2 3 4 5 for x in xs println x x The iter 函数似乎具有相
  • 按广度优先顺序列出目录所有内容导致效率低下

    我编写了一个 Haskell 模块来按广度优先顺序列出目录的所有内容 下面是源代码 module DirElements dirElem where import System Directory getDirectoryContents
  • 按顺序范围循环映射

    我正在寻找一种确定的方法来范围Go map为了 Go 规范 https golang org ref spec For statements陈述如下 映射的迭代顺序未指定 并且不保证从一次迭代到下一次迭代的顺序相同 如果在迭代过程中删除尚未
  • .Net 中的计时器和循环准确吗?

    在开发一个程序时 计算555定时器IC产生的脉冲的频率和脉冲宽度 通过PC并行端口传到PC 我注意到每次运行代码时它都会显示不同的值 因此我开始测试循环和计时器的准确性 我运行了以下代码 发现它们不准确 我可能是错的 如果我错了 请纠正我
  • x 或 y:可接受的习语,还是混淆?

    我必须从可能为 None 的变量中提取值 并考虑一些默认值 我首先写了这段代码 if self maxTiles is None maxX maxY 2 2 else maxX maxY self maxTiles 然后我意识到我可以将其缩
  • 生成具有给定分布的随机数

    看看这个问题 快速选择随机数的概率 https stackoverflow com questions 26092977 swift probability of random number being selected 最上面的答案建议使
  • 同步迭代 javascript 对象

    我有一个像这样的对象 let myObject db1 db1 file1Id db1 file2Id db 1file3Id db2 db2 file1Id db2 file2Id 我遍历这个对象并在每次迭代中 我连接到数据库 检索文件
  • xsl:for-each 循环内的计数器

    如何在 xsl for each 循环内获取一个计数器 该计数器将反映当前处理的元素的数量 例如我的源 XML 是
  • 如何检查 char 数组是否有空单元格以便我可以在其中打印 0?

    Code public void placeO int xpos int ypos for int i 0 i lt 3 i for int j 0 j lt 3 j The line below does not work what ca
  • Checkstyle 规则防止调用某些方法和构造函数

    是否可以使用 Checkstyle 来禁止使用某些使用系统相关默认值 区域设置 字符集等 的构造函数或方法 我更喜欢强制执行一项政策 程序员应该明确了解系统相关的值 所以我认为以下物品是危险的 all the constructors of
  • 函数式编程是否需要新的命名约定?

    我最近开始使用 Haskell 学习函数式编程 并在 Haskell 官方 wiki 上发现了这篇文章 如何阅读哈斯克尔 http www haskell org haskellwiki How to read Haskell What t
  • 如何在这个可嵌套的 For 循环中实现 Robot Framework 风格的变量?

    我在 Robot Framework 中见过很多 嵌套 For 循环 主要是创建一个内部带有 For 循环的关键字 然后在另一个 For 循环中调用该关键字 我使用 Python 2 7 13 制作了一个可嵌套的 For 循环 但因为它主要
  • 如何避免循环

    大家好 我是 R 新手 我有两个面板数据文件 其中包含 id date 和 ret 列 文件 A 的数据比文件 B 多得多 但我主要处理文件 B 数据 id 和 date 的组合是唯一标识符 有没有一种优雅的方式来查找 B 中的每个 id
  • Foreach 更改未保留在 Linq 项目集合上

    在以下示例中 当我返回集合时 不会保留在 foreach 中应用的更改 var people SomeLinqToSqlSource foreach var person in people person Name Jimmy return
  • 如何匹配元音?

    我在处理我正在开发的一个更大程序的一个小组件时遇到了麻烦 基本上我需要让用户输入一个单词 并且需要打印第一个元音的索引 word raw input Enter word vowel aeiouAEIOU for index in word
  • VBA:删除数组项后减少循环迭代?

    在 Excel 的 VBA 中 For i 0 To UBound artMaster For j i To UBound artMaster If i lt gt j And artMaster i VDN artMaster j VDN
  • 在 Clojure 中退出 Recur 循环

    我想跳出下面的循环 并在第 10 行计算结果为 true 时返回最佳最小移动 我查看了 print 语句的输出 当第 10 行的计算结果为 true 时 它 找到了我正在查找的数据 但仍然重复出现 在 Clojure 中 有没有办法在语句计
  • 如果按下 Esc 则中断循环

    我用 JAVA 语言编写了一个程序 它使用 Scanner 类接受来自控制台的输入 现在我想将此功能添加到我的代码中 以便在用户按下 Esc 按钮时存在循环 while 到目前为止 我认为键盘类可以帮助我 但它就像扫描仪一样 我尝试使用事件
  • foreach 循环中 current() 的意外行为[重复]

    这个问题在这里已经有答案了 这是一个简单的循环 list array A B C D foreach list as var print current list Output demo http 3v4l org sBDjl BBBB O
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F

随机推荐

  • IBM Integration 总线 mqsicreatebar 及参考

    我对在我的环境中使用 mqsicreatebar 感到有点困惑 例如 我有以下文件结构 root Libraries Library1 Apps App1 project App1 是参考图书馆1 我想运行 mqsicreatebar 使其
  • 应用程序中的各个阶段在 Spark 中并行运行吗?

    我有一个疑问 阶段如何在 Spark 应用程序中执行 程序员可以定义的阶段执行是否具有一致性 或者是否由 Spark 引擎导出 检查这张图中的实体 阶段 分区 图片来源 http alvincjin blogspot in 2014 12
  • 显示宏选项

    在 Excel VBA 中 可以使用 MacroOptions 函数定义与宏或函数相关的一些信息 通过 VBA 输入后是否可以访问此类信息 谢谢 我已经搜索了一段时间但没有发现什么很棒的东西 我发现的唯一解决方法是使用 Chip Pears
  • 通过 URL 发布到 Reddit

    是否可以通过 URL 发布 Reddit 链接 例如对于 Facebook 你可以这样做 a href Share Stackoverflow on your profile a Reddit 是否有一个可以让我共享 URL 的等效端点 有
  • python 管道中的特征选择:如何确定特征名称?

    我使用 pipeline 和 grid search 选择最佳参数 然后使用这些参数来拟合最佳管道 best pipe 然而 由于 feature selection SelectKBest 处于管道中 因此尚未对 SelectKBest
  • 如何在 Android 上动态更新 ListView [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在 Android 上 我怎样才能L
  • 在 C# 中实现生产者/消费者模式

    我该如何实施生产者 消费者C 中的模式使用活动和代表 使用这些设计模式时 在资源方面需要注意什么 有什么我需要注意的边缘情况吗 我知道这个线程有点老了 但由于我有时在搜索中遇到它 我决定为那些想知道如何实现简单的通用生产者 消费者作业队列的
  • VC++ 堆栈跟踪无法解析生产中的函数名称

    我最近使用实现了堆栈跟踪日志记录boost 的新 stacktrace 库 https www boost org doc libs develop doc html stacktrace getting started html int
  • 使用jquery下载文件自定义名称

    我正在使用 jQueryplugin https github com battatech battatech excelexport将 HTML 表导出到 Excel 使用chrome下载的文件名始终是download xls使用 moz
  • 如何使用 Thrust 计算 int2 数组的平均值

    我正在尝试计算包含点 x y 的某个数组的平均值 是否可以使用推力找到表示为 x y 点的平均点 我也可以将数组表示为thrust device vector
  • D3.js 结合条形图和折线图

    我想通过将条形图与折线图组合来创建多个系列图表 当我使用rangeBands 为了设置输出范围 该线从图表中第一个柱的开头开始绘制 并在最后一个柱的开头结束 我应该更改什么以使该线从第一个刻度线开始并在最后一个刻度线结束 var data
  • 使用模拟器进行条码扫描的 Windows Mobile 应用程序

    我想为 Motorolo MC 9190 G 手机开发简单的应用程序 它有内置的条形码扫描仪 我想扫描条形码并将其显示在消息框中 我没有手机 所以我必须在模拟器中测试它 当我在模拟器中部署代码时 它给出了 null 异常错误 我的代码是 我
  • 如何对ServiceStack进行单元测试?

    我喜欢 SS 但我在尝试对我的业务层进行单元测试时摸不着头脑 我是单元测试和模拟的新手 并且一直在阅读 NSubstitute 因为这看起来像是一个有趣的模拟层 我的文件结构大致如下 MainAppHostProject AppStart
  • 使用Python解析JSON数据

    我从 GitHub Webhook 服务收到一些数据 它包含有关存储库中最近提交的信息 我收到的字符串如下所示 payload ref refs heads master commits added author username myna
  • 如何检索 Pandas 数据框中的列数?

    如何以编程方式检索 pandas 数据框中的列数 我希望有这样的事情 df num columns Like so import pandas as pd df pd DataFrame pear 1 2 3 apple 2 3 4 ora
  • Docker:运行 html 文件的基本示例 dockerfile

    docker 和 dockerfile 是否有任何非常基本且仍然可行的示例来运行单个 html 文件并在 docker 的帮助下将其显示给其他人 要在 http 上提供 html 文件 您需要一个 Web 服务器 因此要做到这一点 您需要做
  • scipy.interpolate.Rbf 的意外结果

    我在使用 RBF 进行插值时遇到一些错误 这是一维的示例 我认为这与我的 y 值彼此之间的接近程度有关 有什么解决办法吗 import numpy as np from scipy interpolate import Rbf interp
  • 从雅虎财经获取 1 分钟柱线

    我正在尝试从雅虎财经下载 1 分钟的历史股票价格 包括当天和前一天的价格 Yahoo 就像 Google 支持最多 15 天的数据 使用以下 API 查询 http chartapi finance yahoo com instrument
  • 如何使用 Twitter API 批准关注者对受保护帐户的请求?

    The 友谊 创造 https dev twitter com docs api 1 post friendships create似乎是最接近的选项 但他们的文档没有明确提及这种情况 有人能够做到这一点吗 我收到了 Twitter 员工的
  • 为什么使用 for 循环而不是 while 循环? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 for 循环还是 while 循环进行迭代 https stackoverflow com questions 99164 iterate with for loop or while loop