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

本文概述

  • C
  • C++
  • C
  • C++
先决条件:
C/C++中的while循环
在大多数计算机编程语言中, while循环是控制流语句, 它允许根据给定的布尔条件重复执行代码。布尔条件为true或false
while(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)中退出。 while(1)可以在条件始终为真的地方使用。
C
//C program to illustrate while(1) #include < stdio.h> int main() { int i = 0; while (1) { printf ( "%d\n" , ++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 < < "\n" ; if (i == 5) //Used to come //out of loop break ; } return 0; }

输出如下
1 2 3 4 5

while(0)
它与while(1)相反。这意味着条件将始终为假, 因此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\n" , ++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 < < "\n" ; flag++; if (i == 5) break ; } if (flag==0) cout < < "Didn't execute the loop!" ; return 0; }

【C语言中while(1)和while(0)之间的区别】输出如下
Didn't execute the loop!

    推荐阅读