原帖及讨论:http://bbs.bccn.net/thread-208752-1-1.html for的基本结构: for(表达式1;表达式2;表达式3) { 语句体; } 在for语句中的三个表达式都是可以“省略”的,换句话说就是可以不放在基本格式中。我们分别来说省略其中一个的情况: (1)省略表达式1: 如果你在基本结构中没有表达1的出现,那么你必须要在循环的前面给出初值。放在循环中或后都是不对的。如: #include<stdio.h> void main() { int i=1; //正确 for(;i<=10;i++) //这里就没有表达式1,则必须在前面给也初值 { printf("%d",i); int i=1; //错误 } int i=1; //错误
printf("/n"); }.
(2)省略表达式2
如果你在基本结构中没有表达式2的出现,那么你不必须要在自我循环内用控制流语句终止程序的运行,否则将造成死循环。控制流语句如:break;exit……等。我们还是看例子。
#include<stdio.h>
void main()
{
int i;
for(i=1;;i++)
{
printf("%d/t",i);
if(i==10) //用这两条语句来使循环当i到10时终止循环而退出。否则程序将无休止的运行
break;
}
printf("/n");
}
(3)省略表达式3
省略表达式3就是没有了机制,无法改变变量的值,也会造成死循环。如里你在结构中省略了表达式3那么你则必须要在循环体内对条件变量进行变值,使条件能在一定条件下结束循环。如里在结构中省略了,那么就必须在循环内进行,不能在for结构前面或是在循环的后面。例如下:
#include<stdio.h>
void main()
{
for(i=1;i<=10;)
{
printf("%d/t",i);
i++; //表达式3放在了这里是正确的,如里没有它,条件永远都为真,将进入死循环。
}
}
注意:不管你在哪里省略了表达式,但是;号是不能省略的,就算是三个表达式你都省略了,在里面也要写上两个; 如:
#include<stdio.h>
void main()
{
int i=1;
for(;;)
{
printf("%d/t",i);
if(i==10)
break;
i++;
}
printf("/n");
} 关于for结构中省略表达式的论文.rar |