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

在大多数计算机编程语言中,while 循环是一种控制流语句,它允许基于给定的布尔条件重复执行代码。布尔条件为真或假。

while(1)

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

我们将条件写在括号()中。 条件可以解析为真或假。 所以 0 代表假,除此之外的任何值都是真。如此合乎逻辑:

while(true) ==while(1)==while(任何代表真的值);
while(false)==while(0);

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

while(1)的简单用法可以在客户端-服务器程序中。在程序中,服务器在无限循环中运行,以接收客户端发送的数据包。但实际上,不建议在现实世界中使用 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(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; } 

运行结果如下:

Didn't execute the loop! 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/264178.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论