|
发表于 2014-9-1 12:58:59
|
显示全部楼层
理论上for循环可以代替所有C语言中的循环,比如while 和do while循环。
for循环格式:for(初始化表达式;终止条件;任意表达式)
其中三个部分都可省略,以达到不同目的
初始化条件: 循环执行前的必要的变量赋值,环境初始化等,也可写在for语句之前,比如
for(i=0;i<=9;i++) 和 int i = 0; for(;i<=9;i++)
效果是一样的
终止条件: 每次循环体执行结束后都会判断 终止条件是否为真,为真则继续循环,否则结束循环。但如果不填终止条件,循环就会成为死循环,必须在循环体中使用break语句跳出:
for(i=0; ; i++){ if (i> 100) printf("%d",i); else break;}
这会输出1到100的自然数,如果没有break的话那就会输出到整数表示上限回滚继续输出
最后那个任意表达式虽说是任何表达式,但是起码得跟循环有关吧,得每次让循环状态更接近结束条件,不然怎么退出循环
最后演示一下for代替while的例子:
从屏幕读取字符,只要字符不是a就继续接受输入:
while版:
printf("请输入一个字符:\n");
while(getchar()!='a'){
getchar();
printf("请重新输入:\n");
}
for版:
for( printf("请输入一个字符:\n"); getchar()!= 'a'; printf("请重新输入:\n") )
getchar() ;
至于循环体里面的getchar() 是因为要从键盘缓冲区里扔掉回车,不然就会出问题
for是不是比while简单多了,现在看起来for循环应该很简单了吧 |
|