我读到c编程中for循环中需要3个以冒号(;)分隔的表达式,但这个问题测试表达式是很常见的,可能吗?
在下面的代码中,根据我所知,并没有给出测试表达式,但在我阅读时,有必要在for()部分中进行初始化、测试和增量函数,这是怎么可能的我读到c编程中for循环中需要3个以冒号(;)分隔的表达式,但这个问题测试表达式是很常见的,可能吗?,c,loops,C,Loops,在下面的代码中,根据我所知,并没有给出测试表达式,但在我阅读时,有必要在for()部分中进行初始化、测试和增量函数,这是怎么可能的 #include <stdio.h> int main(int argc, char const *argv[]) { int i=1,j=1; for(;; i+=j) { if(i>5) { break; } else
#include <stdio.h>
int main(int argc, char const *argv[])
{
int i=1,j=1;
for(;; i+=j)
{
if(i>5)
{
break;
}
else
{
j+=i;
}
printf("\n%d",j);
}
return 0;
}
#包括
int main(int argc,char const*argv[]
{
int i=1,j=1;
对于(;;i+=j)
{
如果(i>5)
{
打破
}
其他的
{
j+=i;
}
printf(“\n%d”,j);
}
返回0;
}
因为规范允许省略零件。省略的循环条件意味着无限循环
说:
6.8.5.3对于声明1. 声明
for ( clause-1 ; expression-2 ; expression-3 ) statement
行为如下:表达式-2是
在每次执行循环体之前进行评估。
表达式-3是
在每次执行循环体后作为空表达式求值。如果第1条是
声明中,它声明的任何标识符的范围都是声明的剩余部分,并且
整个循环,包括其他两个表达式;它是按执行顺序到达的
在第一次计算控制表达式之前。如果子句-1是表达式,则为
在第一次计算控制表达式之前作为无效表达式进行计算。158)2. 第1条和表达式3均可省略。省略的表达式-2替换为 非零常数
没有问题:
i
和j
在声明时初始化,break
终止循环。这个代码太难看了。你不必有任何代码<代码>for(;)也可以,有时用于永不结束的循环。