将 for 循环转换为带有后置增量的 while 循环

标签 c

将以下 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 循环,并且使用 whilewhile 循环合适时进行循环。

关于将 for 循环转换为带有后置增量的 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65757399/

相关文章:

c - 嵌入式 C - 函数参数太多(指针)

c - AVR-GCC 刷入可执行文件什么都不做,直接刷入目标文件就可以了

c - 通过函数后输出没有改变

c - contiki 操作系统中的 sha256 错误散列

c - ‘sizeof’ 对不完整类型的无效应用

android - Bluez 架构 : Explain this Architecture

c - 构建节点时内存分配失败

c - 如何引用在静态库中声明的变量?

c - 让我的局域网中的主机监听特定端口

c - 我应该如何编写 C 代码以使生成的程序集使用额外的 dsll32 和 dsra32 指令?