- 一.for语句的一般形式
- 二.for语句实际操练
- 三.for语句的主要说明
- 1.表达式1可以省略
- 2.表达式2可以省略
- 3.表达式3可以省略
- 4.可以省略表达式1和表达式3,只保留表达式2.
- 5.三个表达式都可以省略
- 6.表达式1可以设置循环变量初值,也可以是与循环变量无关的其他表达式。
- 7.表达式1和表达式3都可以是简单的表达式或者是逗号表达式。
- 8.表达式2的值一般是关系表达式,或者是逻辑表达式。
- 整理至https://appd872nnyh9503.pc.xiaoe-tech.com/index的笔记
for 循环语句
一.for语句的一般形式for(表达式1;表达式2;表达式3)内嵌的语句
执行过程:
1.先求解表达式1的值;
2.再求解表达式2的值;
(2.1)表达式2的值为真(非0)时,则执行for语句中指定的内嵌语句,再求解表达式3的值,反复循环步骤2,一直到表达式2的值为假。
(2.2)表达式2的值为假时,则结束循环。
注意:表达式1的值只会被执行一次。
for语句最常用也最简单的引用形式:
for(循环变量初值;循环变量结束条件;循环变量增加值)内嵌的语句
int sum = 0;
for(int i = 1;i <= 100;i ++) //称呼i为循环变量
{
sum = sum +i;
}
printf("%dn",sum);
三.for语句的主要说明
1.表达式1可以省略
表达式1可以省略,但是表达式1后面的分号不能省略。当表达式1省略时,应该在for循环之前就给循环变量赋予初值。写法比较罕见。
int i;sum = 0;
i = 1;
for(;i <= 100;i ++) //称呼i为循环变量
{
sum = sum +i;
}
printf("%dn",sum);
2.表达式2可以省略
表达式2可以省略,也就是不判断循环条件,那么循环就会无终止的执行下去。次数,就必须使用break语句终止循环。这种写法也很少见。
int sum = 0;
for(int i = 1;;i ++)
{
sum = sum +i;
if(i > 100)
break;
}
printf("%dn",sum);
3.表达式3可以省略
表达式3可以省略,我们也必须想办法保证该for循环结束。否则,循环会无终止的进行下去。
int i,sum;
for(sum = 0,i = 1;i <= 100; ;) //表达式1其实是个逗号表达式
{
sum = sum +i;
i++; //保证for循环能够正常结束
}
printf("%dn",sum);
4.可以省略表达式1和表达式3,只保留表达式2.
int i,sum;
sum = 0;
i = 1;
for(;i <= 100; ;)
{
sum = sum +i;
i++; //保证for循环能够正常结束
}
printf("%dn",sum);
5.三个表达式都可以省略
三个表达式都可以省略。不设初值,不判断条件(认为条件一直为真),循环变量不增加。
导致一个无终止的循环体,这种写法也少见。
for(; ; ;) //会被认为是真,一直执行内嵌的语句
{
//会无限次的执行,这种循环体要想终止,必须在for内嵌语句中,根据一定的条件增加break来跳出循环体。
}
while(1)
{
}
int i,sum;
sum = 0;
i = 1; //i得赋初值,顶替后面for语句的表达式1
for(; ; ;) //会被认为是真,一直执行内嵌的语句
{
//会无限次的执行,这种循环体要想终止,必须在for内嵌语句中,根据一定的条件增加break来跳出循环体。
sum = sum +i;
if(i > 100)
break;
i++; //顶替for语句的表达式3
}
printf("%dn",sum);
6.表达式1可以设置循环变量初值,也可以是与循环变量无关的其他表达式。
int i,sum;
i = 1;
for(sum = 0;i <= 100;i ++)
{
sum = sum +i;
}
printf("%dn",sum);
int i,sum;
i = 1;
sum = 0;
int j;
for(j = 4;i <= 100;i ++)
{
sum = sum +i;
}
printf("%dn",sum);
7.表达式1和表达式3都可以是简单的表达式或者是逗号表达式。
表达式1和表达式3都可以是简单的表达式或者是逗号表达式。不常用,但要注意:表达式1只会被执行一次,但是表达式3是会被执行多次的,循环多少次,表达式3就执行多少次。
int i,sum,j = 10000;
int j;
for(sum = 0,i = 1;i <= 100;i ++,j--)
{
sum = sum +i;
}
printf("%dn",sum);
printf("j = %dn",sum); //9900
8.表达式2的值一般是关系表达式,或者是逻辑表达式。
表达式2的值一般是关系表达式,或者是逻辑表达式。但只要其值为非0,就执行循环体。
int i,sum;
sum = 0;
i = 1;
for(i= 0; 8888; i++;)
{
sum = sum +i;
if(i > 100)
break;
i++; //顶替for语句的表达式3
}
printf("%dn",sum);
总结:虽然for循环语句可能有多种花哨用法,但建议规范使用,这样代码易读。
整理至https://appd872nnyh9503.pc.xiaoe-tech.com/index的笔记


