第5章循环结构
13
5.2 do-while语句
【例5.7】用do-while语句实现【例5.1】。 # include "stdio.h" void main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100); printf("%d\n",sum); }
2
5.1 while语句
While语句的一般格式: 流程图: while(表达式) { 循环体 } 表达式 功能:先判断表达式的值的真假,若 为真(非零)时,就执行循环体的语句 真 系列,否则退出循环结构。 说明:所谓循环是指使用一定条件对 同一个程序段重复执行若干次。被重 复执行的部分(可能由若干语句组成) 称为循环体。
5.2 do-while语句
do-while语句的一般格式是: do { 循环体 } while (<表达式>); 功能: 先执行一次循环体,再判断表
循环体
真
表达式 假
达式的真假。若表达式为真(非0)则
继续执行循环体,一直到表达式为 假(0)时退出循环结构。
12
5.2 do-while语句
和while语句不同的是:while语句先判断<表 达式>是否成立,然后再执行循环体。而dowhile语句是先执行循环体一次,然后再去判 断<表达式>是否成立。 注意:while后面的分号(;)不能少。
# include "stdio.h" main() { int number=0; while(number++<=1) printf("*%d\n",number); 运行结果为: *1 *2 **3
printf("**%d\n",number);
}
7
5.1 while语句
# include "stdio.h" main() { int number=0; while(number<=1) { number++; printf("%d\n",number); # include "stdio.h" main() { int number=0; while(number++<=1) printf("*%d\n",number); printf("**%d\n",number); }
main() 【例5.6】搬砖问题。(36块砖,36人搬;男搬4,女搬3,两 对于men: {个小孩抬一砖。要求一次全搬完,问男、女、小孩各若干) men=0; int men=0,women,children; 设计搬砖问题的程序。 while(men<=8) while(men<=8) 分析:男人(men)的可能取值范围为:0-8; {找满足题意的women,children; { 女人(women)的可能取值范围为:0-11; men++; women=0; 小儿(children)的可能取值范围为:0-36; }while(women<=11) 下面再进一步细化,找每一个women下的children: { children=36-women-men; men=0; if(4.0men+3.0*women+children/2==36) while(men<=8) { {women=0; printf("\nmen is %d",men); while(women<=11) printf("\twomen is %d",women); {找满足题意的children; women++;} printf("\tchildren is %d\n",children); men++; } 当men与women已知后 } women++; children=36-women-men } 若这一children满足条件: men++; 4*men+3*women+children/2=36 } 11 则就找到了一组解。 }
14
【例5.8】while和do-while循环的比较。 ⑴ main() (2) main() {int sum=0,i; {int sum=0,i; scanf("%d",&i); scanf("%d",&i); while(i<=10) do { { sum=sum+i; sum=sum+i; i++; i++; } }while(i<=10); printf("sum=%d\n",sum); printf("sum=%d\n",sum); } }
19
4. 同时省略表达式1和表达式3,只有表达式2,此时相当 于while语句。如 k=1; for(;k<=100;) { s=s+k; k++; } 5. 表达式2一般是关系表达式或逻辑表达式,但也可 以是数值表达式或字符表达式,只要其值不等于0就 执行循环体。 如: for(k=1;k-4;k++)s=s+k; 仅当k的值等于4时终止循环。k-4是数值表达式。
循环体
假
3
5.1 while语句
【例5.1】编程实现1+2+3+…+100。
# include "stdio.h" 用传统流程图(图5.2)和N-S结构流图(图5.3)表示算法。 main() { int i,sum=0; i=1 i=1; 当i<=100 while(i<=100) { sum=sum+i sum+=i; i=i+1 i++; } 图5.3 printf("%d\n",sum); } 图5.2
4
5.1 while语句
需要注意的是: ⑴循环体如果包含一个以上的语句,应该用 花括号括起来,以复合语句的形式出现。如 果不用花括号,则while语句的范围只到while 后面第一个分号处。例如本例中while语句若 无花括号,则while语句范围只到“sum+=i;” 。
⑵在循环体中应该有使循环趋向于结束的语 句。io.h> main( ) 先判后做 { int k,s; s=0;k=1; while(k<=100) { s=s+k; k++; } printf(“s=%d",s); }
运行结果如下: 1 sum=55 再运行一次: 11 sum=0
运行结果如下: 1 sum=55 再运行一次: 11 sum=11
15
5.3 for语句
一、for语句的一般形式: for(<表达式1>;<表达式2>;<表达式3>) <语句>
注意:三个表达式之间必须用分号;隔开。
16
5.3 for语句
5.1 while语句
# include "stdio.h" #【例5.4】输入一正文,统计正文包含的行数,字数和字符数。 define IN 1 # define OUT 0 分析:正文的一行是以'\n'为结束标志的一串字符,一个 /*count lines,words and characters in input*/ void main(void) 字是以' '为结束标志的一串字符。而字符数则是对每个输入 { 的字符(不包含EOF)进行计数 . int c,nl,nw,nc,state; state=OUT; 算法: nl=nw=nc=0; ⑴将标志state置初值0,表示字符不在字中;各计数器变量均 printf("input a text end of ctrl+z:\n"); 置初值为0。 while((c=getchar())!=EOF) { ⑵ 读一个字符c,如果c不是EOF,则 ++nc; ⑵-1 字符数加1。 if(c=='\n') ++nl; if(c==' ⑵-2 若c是'\n'则行数加1。 '|| c=='\n'|| c=='\t') state=OUT; ⑵-3 如果c是空格字符‘ ’、换行字符‘\n‟ 或制表字符‘ else if (state==OUT) 将标志置为0,表示c字符不在字中;否则(c为非空白符),如 { 果标志为0(表示c是字的第一个字符)则将字数加1,并修改标 state=IN; ++nw; 志为1(表示当前字符c是一个字中的字符)。 }/*end⑵-4 转步骤⑵循环. of else-if*/ }/*end of while*/ 如果c是EOF,则循环结束,转步骤⑶ 10 printf("lines=%d words=%d characters=%d\n",nl,nw,nc); } ⑶ 输出计数结果。
第5章 循环结构
5.1 while语句 5.2 do-while语句
5.3 for语句
5.4 三种循环语句的比较 5.5 循环的嵌套 5.5 break语句和continue语句 5.7 综合实例
1
第5章 循环结构
循环结构又称重复结构,可以完成重复 性、规律性的操作。 如求若干数的和、迭代求根等等。 C语言共有三种类型的循环语句: – while – do-while – for
20
例1 用for语句计算
5.2 do-while语句
【例5.7】用do-while语句实现【例5.1】。 # include "stdio.h" void main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100); printf("%d\n",sum); }
2
5.1 while语句
While语句的一般格式: 流程图: while(表达式) { 循环体 } 表达式 功能:先判断表达式的值的真假,若 为真(非零)时,就执行循环体的语句 真 系列,否则退出循环结构。 说明:所谓循环是指使用一定条件对 同一个程序段重复执行若干次。被重 复执行的部分(可能由若干语句组成) 称为循环体。
5.2 do-while语句
do-while语句的一般格式是: do { 循环体 } while (<表达式>); 功能: 先执行一次循环体,再判断表
循环体
真
表达式 假
达式的真假。若表达式为真(非0)则
继续执行循环体,一直到表达式为 假(0)时退出循环结构。
12
5.2 do-while语句
和while语句不同的是:while语句先判断<表 达式>是否成立,然后再执行循环体。而dowhile语句是先执行循环体一次,然后再去判 断<表达式>是否成立。 注意:while后面的分号(;)不能少。
# include "stdio.h" main() { int number=0; while(number++<=1) printf("*%d\n",number); 运行结果为: *1 *2 **3
printf("**%d\n",number);
}
7
5.1 while语句
# include "stdio.h" main() { int number=0; while(number<=1) { number++; printf("%d\n",number); # include "stdio.h" main() { int number=0; while(number++<=1) printf("*%d\n",number); printf("**%d\n",number); }
main() 【例5.6】搬砖问题。(36块砖,36人搬;男搬4,女搬3,两 对于men: {个小孩抬一砖。要求一次全搬完,问男、女、小孩各若干) men=0; int men=0,women,children; 设计搬砖问题的程序。 while(men<=8) while(men<=8) 分析:男人(men)的可能取值范围为:0-8; {找满足题意的women,children; { 女人(women)的可能取值范围为:0-11; men++; women=0; 小儿(children)的可能取值范围为:0-36; }while(women<=11) 下面再进一步细化,找每一个women下的children: { children=36-women-men; men=0; if(4.0men+3.0*women+children/2==36) while(men<=8) { {women=0; printf("\nmen is %d",men); while(women<=11) printf("\twomen is %d",women); {找满足题意的children; women++;} printf("\tchildren is %d\n",children); men++; } 当men与women已知后 } women++; children=36-women-men } 若这一children满足条件: men++; 4*men+3*women+children/2=36 } 11 则就找到了一组解。 }
14
【例5.8】while和do-while循环的比较。 ⑴ main() (2) main() {int sum=0,i; {int sum=0,i; scanf("%d",&i); scanf("%d",&i); while(i<=10) do { { sum=sum+i; sum=sum+i; i++; i++; } }while(i<=10); printf("sum=%d\n",sum); printf("sum=%d\n",sum); } }
19
4. 同时省略表达式1和表达式3,只有表达式2,此时相当 于while语句。如 k=1; for(;k<=100;) { s=s+k; k++; } 5. 表达式2一般是关系表达式或逻辑表达式,但也可 以是数值表达式或字符表达式,只要其值不等于0就 执行循环体。 如: for(k=1;k-4;k++)s=s+k; 仅当k的值等于4时终止循环。k-4是数值表达式。
循环体
假
3
5.1 while语句
【例5.1】编程实现1+2+3+…+100。
# include "stdio.h" 用传统流程图(图5.2)和N-S结构流图(图5.3)表示算法。 main() { int i,sum=0; i=1 i=1; 当i<=100 while(i<=100) { sum=sum+i sum+=i; i=i+1 i++; } 图5.3 printf("%d\n",sum); } 图5.2
4
5.1 while语句
需要注意的是: ⑴循环体如果包含一个以上的语句,应该用 花括号括起来,以复合语句的形式出现。如 果不用花括号,则while语句的范围只到while 后面第一个分号处。例如本例中while语句若 无花括号,则while语句范围只到“sum+=i;” 。
⑵在循环体中应该有使循环趋向于结束的语 句。io.h> main( ) 先判后做 { int k,s; s=0;k=1; while(k<=100) { s=s+k; k++; } printf(“s=%d",s); }
运行结果如下: 1 sum=55 再运行一次: 11 sum=0
运行结果如下: 1 sum=55 再运行一次: 11 sum=11
15
5.3 for语句
一、for语句的一般形式: for(<表达式1>;<表达式2>;<表达式3>) <语句>
注意:三个表达式之间必须用分号;隔开。
16
5.3 for语句
5.1 while语句
# include "stdio.h" #【例5.4】输入一正文,统计正文包含的行数,字数和字符数。 define IN 1 # define OUT 0 分析:正文的一行是以'\n'为结束标志的一串字符,一个 /*count lines,words and characters in input*/ void main(void) 字是以' '为结束标志的一串字符。而字符数则是对每个输入 { 的字符(不包含EOF)进行计数 . int c,nl,nw,nc,state; state=OUT; 算法: nl=nw=nc=0; ⑴将标志state置初值0,表示字符不在字中;各计数器变量均 printf("input a text end of ctrl+z:\n"); 置初值为0。 while((c=getchar())!=EOF) { ⑵ 读一个字符c,如果c不是EOF,则 ++nc; ⑵-1 字符数加1。 if(c=='\n') ++nl; if(c==' ⑵-2 若c是'\n'则行数加1。 '|| c=='\n'|| c=='\t') state=OUT; ⑵-3 如果c是空格字符‘ ’、换行字符‘\n‟ 或制表字符‘ else if (state==OUT) 将标志置为0,表示c字符不在字中;否则(c为非空白符),如 { 果标志为0(表示c是字的第一个字符)则将字数加1,并修改标 state=IN; ++nw; 志为1(表示当前字符c是一个字中的字符)。 }/*end⑵-4 转步骤⑵循环. of else-if*/ }/*end of while*/ 如果c是EOF,则循环结束,转步骤⑶ 10 printf("lines=%d words=%d characters=%d\n",nl,nw,nc); } ⑶ 输出计数结果。
第5章 循环结构
5.1 while语句 5.2 do-while语句
5.3 for语句
5.4 三种循环语句的比较 5.5 循环的嵌套 5.5 break语句和continue语句 5.7 综合实例
1
第5章 循环结构
循环结构又称重复结构,可以完成重复 性、规律性的操作。 如求若干数的和、迭代求根等等。 C语言共有三种类型的循环语句: – while – do-while – for
20
例1 用for语句计算
合集下载
C语言 第五章-循环结构程序设计
执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
循环结构及其应用
【编程思路】
定义变量i表示圆的半径,使其从1递增到10。循环中计算并判断每个圆的面积 值是否大于100,不大于100时,输出圆面积,如果大于100,则使用break 跳出循环即可。
【程序代码】
#include "stdio.h"
#define PI 3.14159
main( )
{
int r;
float area;
{
sum=sum+i; /*累加*/
i++;
/*变为下一个加数*/
} printf("sum=%d\n",sum); /*输出计算结果*/
}
5.2.2 do-while语句
❖ do-while语句属于直到型循环,其一般形式为:
do {
循环体语句 }while (表达式);
❖ do-while语句的执行过程是:
printf("%d is a prime number\n”,m); /* m是素数 */
else printf("%d is not a prime number\n”,m); /* m不是素数 */
}
本例中用到了breakБайду номын сангаас句。在switch语句中我们已 经接触过break语句,它的功能是终止选择执行, 跳出switch语句,那么在循环结构中使用break 语句,其作用是终止循环的执行,即跳出循环语 句。
main( )
{
int n;
for (n=100;n<=200;n++)
{ if (n%3!=0) /*判断n是否能被3整除*/ printf("%d ”,n); /*不能整除时输出n的值 */
循环结构
第5章 循环----三类循环
for语句的一般形式为: for (<初始表达式>;<条件表达式>;<循环表达式>) { <循环体语句> } 1.计算<初始表达式>的值。该表达式是对循 环控制变量进行初始化。 2.判断<条件表达式>的值。该表达式就是循 环条件,若该表达式的值为“假”,则退出循 环,执行循环结构外的语句;若该表达式的值 为“真”,则执行<循环体语句>。 3.计算<循环表达式>的值。该表达式更新循 环控制变量的值。 4.转第2步。
课堂练习: 求1,1+2,1+2+3...... 数列中前n项的值
第5章 循环---数列问题
【例5-3】编写程序,从键盘输入x的值, x x , 直到最后一项 求 sin x x x 3! 5! 7! 绝对值小于le−7(即10−7)为止 (注:x为弧度值)。
3 5 7
开始
计算机导论A
第5讲 循环结构
第5章循环结构
1. for循环语句结构 2. while循环语句结构 3. do-while循环结构 4. break和continue语句的作用 5. 循环结构的嵌套 6. 案例分析
第5章 循环----导引
例5-1:计算10道简单的加、减、乘、除和取余的运算题
/*6-1 分支程序-----循环*/ #include<stdio.h> main() { int a,b,i,n; char op; printf("please input express:"); scanf("%d%c%d",&a,&op,&b); switch(op) { case '+':printf("%d+%d=%d\n",a,b,a+b); break; case '-':printf("%d-%d=%d\n",a,b,a-b); break; case '*':printf("%d*%d=%d\n",a,b,a*b); break; case '%':printf("%d%%%d=%d\n",a,b,a%b); break; case '/':if(b!=0) printf("%d/%d=%d\n",a,b,a/b); else printf("error\n"); break; }}
第5章 循环结构1
说明:
(3)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值) 例如:for(i=1;i<=10;i++) sum=sum+i; (4)三个表达式均可缺省,但起分割作用的两个分号 不可省略。 例如:for( ; ; ) i=1;for(;i<=10;i++) sum=sum+i; 或 for(i=1;i<=10;) {sum=sum+i;i++;} • 表达式1省略,应在for之前对循环变量赋初值 • 表达式2省略,则不判断条件,循环无终止进行下去 • 表达式3省略,则应另设法保证循环的结束
5.4
循环的嵌套
一个循环体内又包含另一个完整的循环结构称为循 环的嵌套。
① while() {… while() {…} } ② do {… do {…} while(); } while() ; ③ for(;;) { for(;;) {…} }
5.4
④ while() {… do {…} while(); … } 说明:
在许多问题中都需要用到循环结构,如
要求计算全校每个学生的平均成绩,计算两 个正整数的最大公约数和最小公倍数等都需
要用到循环控制。C语言中有三种循环语句, 分别是while语句、do…while语句和for语 句。
5.1 while循环语句
while循环语句是用来实现“当型”循环结构的。 它的特点是先判断表达式,后执行语句。 格式: while(表达式) 语句; 该语句的执行顺序是:先计算表达式的值,再判 断其值是否为“真”(即非0)。若结果为“真”, 则执行语句;此过程重复执行,直到表达式的值为 “假”(即为0)时,结束循环。其流程图和N-S图 分别如图5-1和5-2所示。
第5章-循环结构程序设计PPT优秀课件
17
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。
C语言程序设计:第5章 循环结构
执行过程: 先执行循环体语句,再检查 循环条件表达式的值是否为真, 如果为真则继续执行循环体语句, 否则结束循环。
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;
5循环结构及其应用
5.2 实现循环结构的语句
do-while语句的执行过程是: 首先执行一次循环体语句,然后计算表达式(循环条件)的值,若结 果为“真”(非零),返回执行循环体语句,重复上述过程,直到表 达式的值为“假”(零)时结束循环,流程控制转到while语句的下 一语句。 do-while语句执行流程如图5-3所示。
执行程序后得到的输出结果为: 程序分析: 从本例可以看到,循环就是重复执行某些操作,本例用while语句来 实现这一循环过程,其中条件i<=30成立与否,决定着循环是否继续 进行,因此称之为循环条件,程序中被重复执行的语句称为循环体语 句,比如语句{ printf(“*”);i++; }。图5-1是本例的循环结构执行流程。 循环结构是程序的第三种基本结构。用循环结构解决问题的关键就是 找出循环继续与否的条件和需要重复执行的操作即循环体语句。 程序设计中任何循环都必须是有条件或有限次的循环,一定要注意避 免循环一直进行无法正常结束的情况(即死循环)发生。
上一页
下一页
返 回
5.2 实现循环结构的语句
【例5-2】显示1~10的平方。 【编程思路】 (1)定义变量i,并赋初始值1,用i来表示底数和行数,让i在循环体 中递增加。 (2)循环结束条件为i<=10,即底数增加到10的时候进行最后一个循 环。 (3)循环体中使用printf函数输出平方数。 【程序代码】 #include "stdio.h" main( ) { int i=1; while (i<=10) /* 循环条件*/ 上一页 下一页 返 回
上一页
下一页
返 回
5.2 实现循环结构的语句
【例5-5】求n!,即求n的阶乘,n由键盘输入。 【编程思路】 求阶乘实际上是求累乘,即求1*2*3*……*n。累乘与累加除运算类型 不同外,其执行过程相同。 程序代码】 #include "stdio.h" main( ) { int i=1,n; long s=1; printf("please input n:"); scanf(“%d”,&n); 上一页 下一页 返 回
Python语言程序设计第五章循环结构程序设计
14
第5章
循环结构程序设计
5.2 for语句 结构
1. for语句一般形式: for 目标变量 in 序列对象: 循环体语句 说明:
for语句的首行定义了目标变量和遍历的序 列对象,后面是需要重复执行的语句块。语 句块中的语句要向右缩进,且缩进量要一致。
15
第5章
循环结构程序设计
注意:
(1)for语句是通过遍历任意序列的元素来建立 循环的。 (2)for 语句也支持一个可选的else块,一般格 式如下: for 目标变量 in序列对象: 语句块 else: 语句
5
第5章
循环结构程序设计
在while语句中使用else子句
while exp: 循环体 else: 语句
Python可以在循环语句中使用else子句,即构 成了while.......else循环结构。
6
第5章
循环结构程序设计
例 :求
100
n 1
n
开始 sum,n=0,1 n<=100
1)问题分析:
29
第5章
循环结构程序设计
5.4 循环控制语句
有时候我们需要在循环体中提前跳 出循环,或者在某种条件满足时,不执行 循环体中的某些语句而立即从头开始新的 一轮循环,这时就要用到循环控制语句 break、continue和pass语句。
30
第5章
循环结构程序设计
(1) break语句
一般格式 break 功能
371printdddijk40728python语言程序设计第5章循环结构程序设计第5章循环结构程序设计循环结构程序设计51while语句当型循环52for语句结构53循环的嵌套54循环控制语句55循环结构程序举例2第5章循环结构程序设计循环结构的基本类型exptaf
cyu第5章循环(新)
即不为循环变量赋初值,不设置循环条件(认为表达式2 为真值),不修改循环变量的值,无终止地执行循环体。 此时应在循环体内设法结束循环,否则会成为死循环
for( ; ; ) { printf("这将一直进行下去 这将一直进行下去"); 这将一直进行下去 i = getchar(); if(i == 'X' || i == 'x') break; }
int i=1;s=0; while(i<1) ( ) { s=s+i; i=i+1; } printf("s=%d\n",s); ( ) }
17
int i=1,s=0; do { s=s+i; i=i+1; } while(i<1); printf("s=%d\n",s);
左边的程序结果为:s=0,而右边的程序结果为 而右边的程序结果为:s=1。 左边的程序结果为 而右边的程序结果为 。
折扣(y) 无 1% 2% 5% 10%
3
本章目标
理பைடு நூலகம்为什么使用循环结构 熟练掌握while循环的使用 熟练掌握do-while循环的使用 理解while 和 do-while 循环的区别
4
循环的必要性
int a1,a2,a3, a4,a5; a1 = 1 * 10; printf("1 × 10 = %d a2 = 2 * 10; printf("2 × 10 = %d a3 = 3 * 10; printf("3 × 10 = %d a4 = 4 * 10; printf("4 × 10 = %d a5 = 5 * 10; printf("5 × 10 = %d \n",a1); \n",a2); \n",a3); \n",a4); \n",a5);
for( ; ; ) { printf("这将一直进行下去 这将一直进行下去"); 这将一直进行下去 i = getchar(); if(i == 'X' || i == 'x') break; }
int i=1;s=0; while(i<1) ( ) { s=s+i; i=i+1; } printf("s=%d\n",s); ( ) }
17
int i=1,s=0; do { s=s+i; i=i+1; } while(i<1); printf("s=%d\n",s);
左边的程序结果为:s=0,而右边的程序结果为 而右边的程序结果为:s=1。 左边的程序结果为 而右边的程序结果为 。
折扣(y) 无 1% 2% 5% 10%
3
本章目标
理பைடு நூலகம்为什么使用循环结构 熟练掌握while循环的使用 熟练掌握do-while循环的使用 理解while 和 do-while 循环的区别
4
循环的必要性
int a1,a2,a3, a4,a5; a1 = 1 * 10; printf("1 × 10 = %d a2 = 2 * 10; printf("2 × 10 = %d a3 = 3 * 10; printf("3 × 10 = %d a4 = 4 * 10; printf("4 × 10 = %d a5 = 5 * 10; printf("5 × 10 = %d \n",a1); \n",a2); \n",a3); \n",a4); \n",a5);
第5章 循环结构程序设计
输入学生2的三门课成绩,并计算平均值后输出
scanf(“%f,%f,%f”,&s1,&s2,&s3);
aver=(s1+s2+s3)/3;
printf(“aver=%7.2f”,aver); 要对50个学生进行相同操作
重复50次
大多数的应用程序都会包含循环结构
循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句下面的一个语句
5.4用for 语句实现循环
for(i=1;i<=100;i++) sum=sum+i; 等价于 用for语句更简单、方便 i=1; while(i<=100) { sum=sum+i; i++; }
要向计算机输入全班50个学生的成绩
分别统计全班50个学生的平均成绩 求30个整数之和 教师检查30个学生的成绩是否及格
5.1为什么需要循环控制
例如:全班有50个学生,统计各学生 三门课的平均成绩。
输入学生1的三门课成绩,并计算平均值后输出 scanf(“%f,%f,%f”,&s1,&s2,&s3); aver=(s1+s2+s3)/3; printf(“aver=%7.2f”,aver);
n 1
100
5.3用do---while语句实现循环
解题思路:
sum=0 i=1 sum=sum+i i=i+1
