C语言中while(1)和while(0)的区别

先决条件: C/C中的while循环++ 在大多数计算机编程语言中,while循环是一种控制流语句,允许根据给定的布尔条件重复执行代码。布尔条件为true或false

null

而(1)

它是一个无限循环,将一直运行,直到显式发出break语句。有趣的是,不是while(1),而是任何非零的整数都会产生与while(1)类似的效果。因此,while(1)、while(2)或while(-255)都只会给出无限循环。

while(1) or while(any non-zero integer){     // loop runs infinitely}

while(1)的简单用法可以在客户机-服务器程序中使用。在该程序中,服务器以无限while循环运行,以接收从客户端发送的数据包。 但实际上,在现实世界中使用while(1)是不可取的,因为它会增加CPU使用率,并且还会阻塞代码,即在手动关闭程序之前,无法从while(1)中取出代码。而(1)可用于条件需要始终为真的地方。

C

// C program to illustrate while(1)
#include <stdio.h>
int main()
{
int i = 0;
while (1) {
printf ( "%d" , ++i);
if (i == 5)
break ; // Used to come
// out of loop
}
return 0;
}


C++

#include <iostream>
using namespace std;
int main()
{
int i = 0;
while (1) {
cout << ++i << "" ;
if (i == 5)
// Used to come
// out of loop
break ;
}
return 0;
}


输出

12345

而(0) 它与while(1)相反。这意味着条件将始终为false,因此while中的代码将永远不会执行。

while(0){     // loop does not run}

C

// C program to illustrate while(0)
#include<stdio.h>
int main()
{
int i = 0, flag=0;
while ( 0 )
{
// This line will never get executed
printf ( "%d" , ++i );
flag++;
if (i == 5)
break ;
}
if (flag==0)
printf ( "Didn't execute the loop!" );
return 0;
}


C++

#include <iostream>
using namespace std;
int main() {
int i = 0, flag=0;
while ( 0 )
{
// This line will never get executed
cout << ++i << "" ;
flag++;
if (i == 5)
break ;
}
if (flag==0)
cout << "Didn't execute the loop!" ;
return 0;
}


输出

Didn't execute the loop!

本文由 安妮卡·戈亚尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享