在 C 编程中退出 while(1) 循环
Exiting while(1) loop in C programming
我正在为我的 C
编程做示例 class。其中一个例子是:
更新: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;
}
我知道while(1)
是一个无限循环。
为了摆脱循环,我通常使用 break;
。
但是,在这个例子中,当 num=2
它退出循环。
我不明白 return o;
如何影响 while(1)
循环?
return 0;
退出您所在的函数,return 值为 0
。所以,如果它离开函数,它显然离开了函数中的 while
循环。
return
立即退出函数——不管程序在做什么。
如果你在main
函数中执行while(1)
循环,return
会立即退出main
函数,这意味着它会退出程序并退出无限循环也是如此。
如果你在其他函数中执行循环,比如说foo
,return
仍然会立即退出foo
函数,这仍然意味着它会退出无限循环。
return 终止函数,return 控制调用函数(如果有)。
这就是它打破任何循环、条件或其他控制结构的原因。
returned 值在这方面并不重要。
为了更好地向您解释,让我们在您的代码中添加几行:
#include<stdio.h>
int main()
{
while(1)
{
printf("Enter number: ");
scanf("%d", &num);
if (num==2)
{
return 0;
}
else
{
printf("Num = %d", num);
}
}
printf ("BYE\n");
return 0;
}
让我们用 break
代替 return 0;
:
#include<stdio.h>
int main()
{
while(1)
{
printf("Enter number: ");
scanf("%d", &num);
if (num==2)
{
break;
}
else
{
printf("Num = %d", num);
}
}
printf ("BYE\n");
return 0;
}
第一个代码的输出不会包含消息 "BYE",而第二个代码会。
所以总结 return
终止函数并且不执行它下面的任何东西,其中 break 终止循环并且程序不执行循环中的剩余行。
我正在为我的 C
编程做示例 class。其中一个例子是:
更新: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;
}
我知道while(1)
是一个无限循环。
为了摆脱循环,我通常使用 break;
。
但是,在这个例子中,当 num=2
它退出循环。
我不明白 return o;
如何影响 while(1)
循环?
return 0;
退出您所在的函数,return 值为 0
。所以,如果它离开函数,它显然离开了函数中的 while
循环。
return
立即退出函数——不管程序在做什么。
如果你在main
函数中执行while(1)
循环,return
会立即退出main
函数,这意味着它会退出程序并退出无限循环也是如此。
如果你在其他函数中执行循环,比如说foo
,return
仍然会立即退出foo
函数,这仍然意味着它会退出无限循环。
return 终止函数,return 控制调用函数(如果有)。 这就是它打破任何循环、条件或其他控制结构的原因。
returned 值在这方面并不重要。
为了更好地向您解释,让我们在您的代码中添加几行:
#include<stdio.h>
int main()
{
while(1)
{
printf("Enter number: ");
scanf("%d", &num);
if (num==2)
{
return 0;
}
else
{
printf("Num = %d", num);
}
}
printf ("BYE\n");
return 0;
}
让我们用 break
代替 return 0;
:
#include<stdio.h>
int main()
{
while(1)
{
printf("Enter number: ");
scanf("%d", &num);
if (num==2)
{
break;
}
else
{
printf("Num = %d", num);
}
}
printf ("BYE\n");
return 0;
}
第一个代码的输出不会包含消息 "BYE",而第二个代码会。
所以总结 return
终止函数并且不执行它下面的任何东西,其中 break 终止循环并且程序不执行循环中的剩余行。