【例子】假设今年我国人口总数为13亿,若按每年2%增长,计算从现在开始10年内每年人口数量
【例5.2】计算1-4/1+7/1-10/1+13/1-16/1+...的和,直到某一项的绝对值小于10负6次方
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.3】输入一个正整数n,求sum的值
【例5.4】输入一个正整数n,求n
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;)
循环体语句;
例5.4的循环语句:
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语句的一般形式中循环语句可以省略
例5.3的循环语句:
1.for(i=1;i<=n;i++)
2. sum=sum+i;
等价于:
for(i=1;i<=n;sum=sum+i,i++);
5.2.2 for循环使用示例
【例5.5】输入一个整数n,计算1-1/4+1/7-1/10+1/13-1/16+...的前n项之和
【例5.6】输入10个数,输出其中的最大数
【例5.7】输出所有的水仙花数
【例5.8】由键盘输入一个正整数,判断该数是否为完数
【例5.9】统计由键盘中输入的若干个字符中,大写英文字母、小写英文字母、数字字符和其他字符的个数
【5.10】任意输入一行小写字母,将它们转换成大写字母后输出
【例5.11】 由键盘输入3个数字,将其组合成一个整型数并输出
【5.12】由键盘输入一个正整数,判断其是否为素数
5.3 使用while语句实现循环结构
5.3.1 while语句的基本语法
while语句一般形式如下:
while(表达式)
循环体;
while语句的执行流程如图5.3所示
第一步:计算表达式的值,若表达式的值为“真”,则执行第2步;若表达式的值为“假”,则转到第4步。
第二步:执行循环体语句。
第三步:返回第一步。
第四步:结束循环,执行while语句的下一条语句。
注意:while语句的特点是先判断循环条件,后执行循环体。
5.3.2 while循环使用示例
【例5.13】计算sum的值
【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.16】使用do-while语句计算sum=n的值
5.17
5.18
5.19
5.20
5.21
5.5.2 continue语句
作用:结束本次循环,开始下次循环
5.5.3 goto语句
四种循环控制语句,for循环语句、while循环语句、do-while循环语句 、goto循环
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
5.32
5.33
5.34
5.35
5.36
5.37