在C编程中退出(1)循环

Zul*_*aev 0 c return-value infinite-loop while-loop

我正在为我的C编程课做例子.其中一个例子是这样的:

更新:return 0;和之间的区别break;

#include<stdio.h>
int main()
{

while(1)
{
  printf("Enter number: ");
  scanf("%d", &num);

  if (num==2)
   {
      return 0;
   }
  else
   {
      printf("Num = %d", num);
   }

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

我知道这while(1)是一个无限循环.为了摆脱循环我break;正常使用.

但是,在这个例子中,当num=2它失去循环.

我不明白循环return o;效果如何while(1)

Ste*_*ocy 5

return 0;
Run Code Online (Sandbox Code Playgroud)

退出您所在的函数,返回值为0.所以,如果它离开函数,它显然是离开函数中的while循环.


cyl*_*lee 5

return 立即退出该功能 - 无论工作程序在做什么.

如果你while(1)main函数中执行循环,return会立即退出main函数,这意味着它将退出程序并退出无限循环.

如果你在其他函数中执行循环,比如说foo,return仍会立即退出foo函数,这仍然意味着它会退出无限循环.