5.2 使用for语句实现循环结构
5.2.1 for语句的 基本语法
for语句的一般形式:
for(表达式1;表达式2;表达式3)
循环体语句;
1.首先计算表达式1;
2.判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第3步;若值为假(0),结束循环,转到第5步执行。
3.计算表达式3
4.返回第2步继续执行;5.循环结束,继续执行for语句的下一条语句;
5.2.2 for循环使用示例
2.for语句的一般形式中省略表达式1
格式如下:
for(;表达式2,表达式3)
循环语句;
说明:省略表达式1时,可以将循环变量赋初值放在for之前。注意,此时不能省略第一个“;”。
例5.3的循环语句:
1.for(i=1;i<=n;i++)
2.sum=sum+i;
等价于:
1.i=1;
2.for(;i<=n;i++)
3. sum=sum+i;
3.for语句的一般形式中省略表达式2
格式如下:
for(表达式1;;表达式3)
循环体语句;
4.for语句的一般形式中省略表达式3
for(表达式1;表达式2;)
循环体语句;
1.for(i=1;i<=n;i++)
2. factorial=factorial*i;
等价于:
1.for(i=1;i<=n;)
2.{ factorial=factorial*i;
3. i++;
4.}
5.for语句的一般形式表达式1和表达式3也可以是逗号表达式
例5.3的程序段:
1.sum=0;
2.for(i=1,i<=n;i++)
3. sum=sum+i;
等价于:
for(sum=0,i=1;i<=n;i++)
sum=sum+i;
表达式sum=0,i=1为逗号表达式。
6.for语句的一般形式表达式2的值只要非0,就执行循环体
例如:
1.for(;(ch=getchar())!='\n';)
2. printf("%c",ch)
7.for语句的一般形式中循环语句可以省略
1.for(i=1;i<=n;i++)
2. sum=sum+i;
等价于:
for(i=1;i<=n;sum=sum+i,i++);
2.for语句的一般形式中省略表达式1
格式如下:
for(;表达式2,表达式3)
循环语句;
说明:省略表达式1时,可以将循环变量赋初值放在for之前。注意,此时不能省略第一个“;”。
例5.3的循环语句:
for(i=1;i<=n;i++)
sum=sum+i;
等价于:
i=1;
for(;i<=n;i++)
sum=sum+i;
3.for语句的一般形式中省略表达式2
格式如下:
for(表达式1;;表达式3)
循环体语句;
4.for语句的一般形式中省略表达式3
for(表达式1;表达式2;)
循环体语句;
【5.10】任意输入一行小写字母,将它们转换成大写字母后输出
【例5.11】 由键盘输入3个数字,将其组合成一个整型数并输出
5.12】由键盘输入一个正整数,判断其是否为素数
5.3 使用while语句实现循环结构
5.3.1 while语句的基本语法
while语句一般形式如下:
while(表达式)
循环体;
while语句的执行流程如图5.3所示
第一步:计算表达式的值,若表达式的值为“真”,则执行第2步;若表达式的值为“假”,则转到第4步。
第二步:执行循环体语句。
第三步:返回第一步。
第四步:结束循环,执行while语句的下一条语句。
注意:while语句的特点是先判断循环条件,后执行循环体。
5.13
【5.14】输入一个正整数n,计算n!
【5.15】由键盘输入一串字符,分别统计输入字符中数字字符、字母字符及其它字符个数
5.4 使用 do-while语句实现循环结构
5.4.1 do-while语句的基本用法
do
循环体
while(表达式);
do-while语句的执行流程如图5.4所示
1.执行循环体语句;
2.计算表达式的值,若表达式的值为‘真’,返回第一步;若表达式的值为‘假’,则执行第3步;
3.结束循环;
注意:do-while语句的特点是先循环体,后判断循环条件。因此,do-while循环至少要执行一次循环体。
5.4.2 do-while循环使用示例
【例5.16】使用do-while语句计算sum=n的值
18
5.5 改变循环结构的跳转语句
5.5.1 break语句
break结束整个循环
19
20
21
5.5.2 continue语句
作用:结束本次循环,开始下次循环
5.5.3 goto语句
四种循环控制语句,for循环语句、while循环语句、do-while循环语句 、goto循环
5.6 循环嵌套
25
26
27
29
30
31
33 35
5.6 循环嵌套
5.8循环程序设计示例
34
35
36
37