一.for语句循环一.for循环语句表达式:
for(表达式1;表达式2;表达式3)(注:其后不接“;”。因为for只能控制到“;”前面的代码,那么下面的{}花括号就不属于for循环)
{
内嵌语句;
}
二.for语句执行过程
1.求表达式1。
2.求表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。
3.求表达式3。
4.返回第二步继续运行。
5.循环结束,继续运行for下面的语句。
三.for循环最简单的语句形式
for(循环变量;循环条件;循环变量增值)
{
内嵌语句;
}
注意:循环变量可以在for后面的括号内对其赋值,也可在前面int引入其循环变量是对其赋值,二者皆是可行的。
下面运用for语句运行课本上的代码,
#include <stdio.h>
int main(void)
{
int i;
int sum = 0;
for (i=1; i<=100; ++i) /
{
sum = sum + i;
}
printf("sum = %d\n", sum);
return 0;
}
1.首先求解表达式1,即给变量i赋初值,i=1;表达式1只执行这一次,下面都不会再执行了。
2.然后求解表达式2,若 1<=100 成立,则执行 for 循环中的内嵌语句,即 sum=0+1。
3.然后执行第3步,变量 i 自加 1,即变量 i 由 1 变为 2。
4.然后再求解表达式2,2<=100 成立,则执行 for 循环中的内嵌语句,sum=0+1+2。
5.然后再执行第3步,变量 i 自加 1,即变量 i 由 2 变为 3。
6.然后再求解表达式2,即 3<=100 成立,则执行 for 循环中的内嵌语句,sum=0+1+2+3。
…
注意:
1.for语句的实质就是不断循环,1+2+3+4…一直到100,最后得到的数字总和。最后通过printf输出总和值。
2.自增在c++中并不重要,所以不懂也没有太大关系,这只是一个方便我们的运算符号而已,例如:(a=++i 就相当于 i=i+1,a=i;a=i++ 就相当于 a=i,i=i+1。同理,a=––i 就相当于 i=i–1,a=i;a=i–– 就相当于 a=i,i=i–1。)
二.while语句循环
While基本形式:
While(<条件表达式>)
{
<循环语句>
<循环变量表达式>
}
执行流程:
1.执行初始化语句
2.执行条件表达式,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3.执行循环语句
4.执行循环变量表达式
5.回到2继续
下面运用while语句运行书本P103页代码
#include <stdio.h>
void main()
{
int i=q,sum=0;
while(i<=100)
{
sum=sum+1;
i++;
}
printf(“sum=%d\n”,sum);
}
注意:
1.while语句实质是for语句的延伸,熟练的掌控for语句对于理解while语句有着极大的帮助。
2.while语句中的表达式一般是关系表达式或逻辑表达,也可以是数值表达式或字符表达式,只要其值为真(非0)即可继续执行循环体
3.循环体语句可以为任意类型,循环体如果包含一个以上的语句,应该用花括号起来,以复合语句的形式出现。如果不用花括号,则while语句的范围只到while后面第一个分号处。
4.在循环体中应该有使循环趋向于结束的语句,以避免死循环
5.允许while语句的循环体中包含另一个while语句,从而形成循环的嵌套
三.do…while语句循环
do…while语句基本格式:
do{
循环体语句;
}while(条件表达式);
完整格式:
do{
循环语句;
循环变量表达式;
}while(条件判断语句);
执行流程:
1.执行初始化语句
2.执行循环语句
3.执行循环变量表达式
4.执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
5.回到2继续
注意:
while和do…while区别
while执行流程:先判断循环控制表达式的值,当该表达式的值为逻辑真(非 0)时,会一直执行循环体,直到表达式的值为逻辑假(0)才结束循环。
do…while执行流程:首先无条件地执行一次循环体,然后再根据循环控制表达式的值来判断是否继续执行循环体。若为真,则继续执行;若为假,则停止执行,退出 do-while 循环。也就是说,do-while 循环至少执行一次循环体。
while 循环和 do…while 循环的主要差别是:前者可能一次也不执行循环体,后者至少执行一次循环体。