📅  最后修改于: 2020-10-22 01:09:05             🧑  作者: Mango
无限循环是不会终止循环并永远执行循环的循环构造。也称为无限循环或无限循环。它产生连续输出或不产生输出。
无限循环对于接受用户输入并连续生成输出直到用户手动退出应用程序的应用程序很有用。在以下情况下,可以使用这种类型的循环:
我们可以通过各种循环结构创建无限循环。以下是我们将定义无限循环的循环结构:
让我们看看无限的“ 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(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”。
#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)。