c - 将 for 循环转换为具有后增量的 while 循环
问题描述
将以下for
循环作为while
循环执行的等价物是什么?
for (int i=0;i<10;i++)
{
...
}
起初我认为以下方法会起作用:
int n = 0;
while (n++ <= 10)
{
...
}
但似乎后增量发生在第一个 while 循环进入之前,所以我需要设置n=-1
来调整。是否有更接近的方法将循环重写for
为while
循环(没有do
)?
解决方案
您必须将增量放在循环主体内(在其最后):
int n = 0;
while (n < 10)
{
//...
n++;
}
但请注意:正如评论中所提到的,continue
这样的循环中的任何语句(如果不是本身包含在嵌套的内部循环中)都会破坏代码并创建一个潜在的无限循环!
故事的寓意:在循环适当时使用for
循环,在循环适当时使用循环。for
while
while
推荐阅读
- plsql - Oracle PL/SQL 程序在源表中拆分逗号分隔的数据并推送到目标表中
- python - 我该如何解决这个错误?字段 'id' 需要一个数字,但得到了 'aapl'
- javascript - Chart.js 鼠标悬停工具提示出现在光标位置错误时
- python - KeyError: 'mtD' when 'mtD' is nowhere to be found in the related code
- prolog - How to get a numeric value from the consulting file in Prolog?
- ruby-on-rails - ActiveRecord::StatementInvalid - PG::CharacterNotInRepertoire:错误:编码“UTF8”的字节序列无效
- node.js - 跳过express.js中多个选项路由参数的中间参数?
- ggplot2 - julia Plots 等效于 ggplot 的填充
- google-apps-script - 查找包含某些值的行号和列,然后将值插入该单元格
- ios - 快速无限滚动以加载以前的聊天记录