📜  C中的无限循环

📅  最后修改于: 2020-10-22 01:09:05             🧑  作者: Mango

C语言中的无限循环

什么是无限循环?

无限循环是不会终止循环并永远执行循环的循环构造。也称为无限循环或无限循环。它产生连续输出或不产生输出。

何时使用无限循环

无限循环对于接受用户输入并连续生成输出直到用户手动退出应用程序的应用程序很有用。在以下情况下,可以使用这种类型的循环:

  • 所有操作系统在无限循环中运行,因为执行某些任务后该循环不存在。仅当用户手动关闭系统时,它才会出现无限循环。
  • 当服务器响应所有客户端请求时,所有服务器都以无限循环运行。仅当管理员手动关闭服务器时,它才会出现无限循环。
  • 所有游戏也都无限循环运行。游戏将接受用户的请求,直到用户退出游戏为止。

我们可以通过各种循环结构创建无限循环。以下是我们将定义无限循环的循环结构:

  • for循环
  • while循环
  • 循环执行
  • 去声明
  • C宏

对于循环

让我们看看无限的“ for”循环。以下是无限for循环的定义:

for(; ;)
{
    // body of the for loop.
}

我们知道’for’循环的所有部分都是可选的,在上面的for循环中,我们没有提到任何条件。因此,此循环将执行无限次。

让我们通过一个例子来理解。

#include 
int main()
{
   for(;;)
   {
     printf("Hello javatpoint");
   }
return 0;
}

在上面的代码中,我们无限次运行“ for”循环,因此“ Hello javatpoint”将无限显示。

输出量

while循环

现在,我们将看到如何使用while循环创建无限循环。以下是无限while循环的定义:

while(1)
{
   // body of the loop..
}

在上面的while循环中,我们在循环条件中放入“ 1″。众所周知,任何非零整数都代表真实条件,而“ 0″则代表错误条件。

让我们看一个简单的例子。

#include 
int main()
{
  int i=0;
  while(1)
  {
      i++; 
      printf("i is :%d",i);
  }
return 0;
}

在上面的代码中,我们定义了while循环,由于它不包含任何条件,因此可以无限次运行。 “ i”的值将被无限次更新。

输出量

做..while循环

do..while循环还可用于创建无限循环。以下是创建无限do..while循环的语法。

do
{
    // body of the loop..
}while(1);

上面的do..while循环表示无限条件,因为我们在循环条件内提供了“ 1″值。我们已经知道非零整数表示真实条件,因此此循环将无限次运行。

goto声明

我们还可以使用goto语句定义无限循环。

infinite_loop;
// body statements.
goto infinite_loop;

在上面的代码中,goto语句将控件转移到无限循环。

巨集

我们还可以借助宏常量创建无限循环。让我们通过一个例子来理解。

#include 
#define infinite for(;;)
int main()
{
 
  infinite
  {
      printf("hello");
  }

    return 0;
}

在上面的代码中,我们定义了一个名为“无限”的宏,其值为“ for(;;)”。每当程序中出现“无限”一词时,就会将其替换为“ for(;;)”。

输出量

到目前为止,我们已经看到了定义无限循环的各种方法。但是,我们需要一些方法来摆脱无限循环。为了走出无限循环,我们可以使用break语句。

让我们通过一个例子来理解。

#include 
int main()
{
 char ch;
 while(1)
 {
     ch=getchar();
     if(ch=='n')
     {
         break;
     }
     printf("hello");
 }
 return 0;
}

在上面的代码中,我们定义了while循环,它将执行无数次,直到我们按下键“ n”为止。我们在while循环中添加了’if’语句。 ‘if’语句包含break关键字,而break关键字将控制带出循环。

意外的无限循环

有时,由于代码中的错误,会出现无意识的无限循环。如果我们是初学者,那么很难追踪他们。以下是跟踪无意无限循环的一些措施:

  • 我们应该仔细检查分号。有时我们将分号放在错误的位置,这会导致无限循环。
#include 
int main()
{
int i=1;
while(i<=10);
{
printf("%d", i);
i++;
}
return 0;
}

在上面的代码中,我们将分号放在导致无限循环的while循环的条件之后。由于使用了分号,因此while循环的内部主体将无法执行。

  • 我们应该仔细检查逻辑条件。有时由于错误,我们将赋值运算符(=)代替了关系运算符(= =)。
#include 
int main()
{
char ch='n';
while(ch='y')
{
 printf("hello");
}
return 0;
}

在上面的代码中,我们使用赋值运算符(ch =’y’)导致无限次执行循环。

  • 我们使用了错误的循环条件,导致循环无限期地执行。
#include 
int main()
{
  for(int i=1;i>=1;i++)
  {
      printf("hello");
  }
return 0;
}

上面的代码将无限次执行“ for循环”。当我们输入条件(i> = 1)时(对于每个条件总是如此),这意味着将无限次打印“ hello”。

  • 在嵌套循环中使用break关键字时,请务必小心,因为它将终止最近循环的执行,而不是整个循环的执行。
#include 
int main()
{
  while(1)
  {
      for(int i=1;i<=10;i++)
      {
          if(i%2==0)
          {
              break;
          }
      }
  }
    return 0;
}

在上面的代码中,当我们在内部循环中使用break关键字时,while循环将无限次执行。这个break关键字将控件带出内部循环,而不是外部循环。

  • 在循环中使用浮点值时,我们应该非常小心,因为我们不能低估浮点错误。
#include 
int main()
{
  float x = 3.0;
while (x != 4.0) {
  printf("x = %f\n", x);
  x += 0.1;
}
    return 0;
}

在上面的代码中,循环将无限次运行,因为计算机会将浮点值表示为实际值。计算机会将4.0的值表示为3.999999或4.000001,因此条件(x!= 4.0)永远不会为假。解决此问题的方法是将条件写为(k <= 4.0)。