个性化阅读
专注于IT技术分析

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

本文概述

先决条件:

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;
}

输出如下

Didn't execute the loop!
赞(0)
未经允许不得转载:srcmini » C语言中while(1)和while(0)之间的区别

评论 抢沙发

评论前必须登录!