目录
导言:补充上一节学习的内容
一,for语句介绍
1,for循环语句由循环体(loop body)以及循环条件(loop condition)组成,组成形式为:
for(单次表达式子;单次条件判断;末尾循环体)
{
中间循环体;
}
2,for循环语句运作,先执行for()里面的单次表达式子,然后进入单次条件判断;如果判定为真(1),则进入“{}”里面的中间循环体进行相应的条件赋值,把值带回for()里面的末尾循环体进行赋值,赋值后再进行又一轮的判断和循环,直到单次条件判断为假(0),跳出循环体,结束循环
值得注意的是,单次表达式子只在第一次循环中被用到,接下来的若干次循环被末尾循环体的赋值代替(可以认定为单次表达式子为初始化语句);末尾循环体大多数为自增持(Self increasing)或自减少(Self subtraction)的表达式(如:i++,i--)使得单次条件判断向假(0)靠近
3,for语句括号里面的三条表达式(单次表达式子,单次条件判断和末尾循环体)都可以省略(注意:里面的分号“;”不能省略,因为“;”前的空白可代表一个空语句,省略后语句减少,语句格式发生变化从而无法判断),因此for语句有5种表达形式,以例题来讲述这5种表达形式的不同
例题3,用for语句求出1到100的和
①,完整形式
#include <stdio.h>
int main()
{
int i, sum=0;
for(i=1;i<=100;i++)
{
sum+=i;
}
printf("%d,sum");
} \\完整形式
②,省略单次表达式子
#include <stdio.h>
int main()
{
int i=1, sum=0;
for(;i<=100;i++)
{
sum+=i;
}
printf("%d,sum");
} \\单次表达式子在for()中被省略,但需要在前面定义的时候就标明,如前面i=1
③,省略单次循环条件
#include <stdio.h>
int main()
{
int i, sum=0;
for(i=1;;i++)
{
i<=100;
sum+=i;
}
printf("%d,sum");
} \\在for()中省略了单次条件判断,但是需要在循环体里面补充循环条件,否则会死循环
④,省略末尾循环体
#include <stdio.h>
int main()
{
int i, sum=0;
for(i=1;i<=100;)
{
sum+=i;
i++;
}
printf("%d,sum");
} \\在for()中省略了末尾循环体,但是需要在中间循环体中加上
⑤,全省略
#include <stdio.h>
int main()
{
int i=1, sum=0;
for(;;)
{
sum+=i;
i<=100;
i++;
}
printf("%d,sum");
} \\for()内全为空语句,但是循环体中条件和判断全在,所以程序能够稳定运行;因此for()全空的时候要保证括号内的条件全部保留
二,for语句和while语句的比较
1,执行条件的判断方式不同。for循环执行末尾循环体后将再次进行条件判断,若判断为真(1),则继续重复上述循环,当判断为假(0)时跳出for循环。而while循环满足条件时才进入循环,进入循环后当条件不满足时,执行完循环体内全部语句后再跳出
2,两者使用情况不同。while语句在运行时候不知道循环次数,目的是为了反复执行代码段而不要求次数;而for语句则知道循环次数多少,目的是为了限制次数,使结果更精确
3,两者的语法不同。
for循环的语法为:
for (变量 = 开始值;变量 <= 结束值;变量 = 变量 + 变化值)
{
执行代码
}
while循环的语法为:
while (条件)
{
执行代码
}
以上是本人的日记,都是自己的笔记记录以及自己的理解,如有错误欢迎指正,本人洗耳恭听 PS:入门小白,技术力不高,如果各位大佬要喷,请嘴下留情,谢谢;除此之外这个网站有其他非常优秀的博主和文章,欢迎大家去关注