为什么这是一个无限循环?

0 c loops infinite-loop while-loop do-while

为什么循环继续到无穷大,我通过 n<6 设置了限制,还有一件事,代码打印 111111... 。我期望的输出是 12345。

#include <stdio.h>

//Compiler version gcc  6.3.0

int main()
{
  int n=1;
  do{
    while(n<6)
    printf("%d",n);
    n++;
  }
  while(n<6);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

Cai*_*ard 6

为什么这是一个无限循环?

因为这:

do{
    while(n<6)
    printf("%d",n);
    n++;
}
...
Run Code Online (Sandbox Code Playgroud)

其实是这样的:

do{
    while(n<6) {
        printf("%d",n);
    }
    n++;
}
...
Run Code Online (Sandbox Code Playgroud)

代码永远不会逃避do. 我建议删除它,这样你就只有一行,while(n<6)上面写着,return将使你的程序按预期运行

在此处输入图片说明