第6章循环结构程序设计 第6章循环结构程序设计 6.,1 while语句 62do- while语句 6.3for语句 64终止循环语句 6.5多重循环 66程序设计举例 BACK
第 6章 循环结构程序设计 第 6章 循环结构程序设计 6.1 while语句 6.2 do-while语句 6.3 for语句 6.4 终止循环语句 6.5 多重循环 6.6 程序设计举例
第6章循环结构程序设计 61 while语句 格式: while(条件表达式)语句 功能:条件表达式描述循环的条件,语句描述要反 复执行的操作,称为循环体 先计算条件表达式的值,当条件表达式的值为真时, 代表循环的条件成立,执行循环体。当条件表达式的值 为假时,代表循环的条件不成立,退出循环,执行循环下 条语句。 while语句是当循环的条件成立时,反复执行的循环
第 6章 循环结构程序设计 6.1 while语句 格式: while (条件表达式) 功能: 条件表达式描述循环的条件, 语句描述要反 复执行的操作, 称为循环体。 先计算条件表达式的值, 当条件表达式的值为真时, 代表循环的条件成立, 执行循环体。当条件表达式的值 为假时, 代表循环的条件不成立, 退出循环, 执行循环下 一条语句。 while语句是当循环的条件成立时, 反复执行的循环
第6章循环结构程序设计 说明 (1)whle语句是先判断,后执行。如果循环的条件一开始不成立 (条件表达式为假),则循环一次都不执行。 (②)循环体中必须有改变循环条件的语句,否则循环不能终止,形 成无限循环 (3)循环体为多条语句时,必须采用复合语句 (4)当循环条件为永真条件时,将变成无限循环。可以利用 break 语句终止循环的执行。 (5)等价的f语句加goto语句形式如下 标号:if(条件表达式) 循环体; goto标号;
第 6章 循环结构程序设计 说明: (1) while语句是先判断, 后执行。 如果循环的条件一开始不成立 (条件表达式为假),则循环一次都不执行。 (2) 循环体中必须有改变循环条件的语句, 否则循环不能终止, 形 成无限循环。 (3) 循环体为多条语句时,必须采用复合语句。 (4) 当循环条件为永真条件时, 将变成无限循环。可以利用break 语句终止循环的执行。 (5) 等价的 if 语句加goto语句形式如下: 标号: if (条件表达式) { 循环体; goto 标号; }
第6章循环结构程序设计 例6-1求一些正数的和。 /*程序6-1,求一些正数之和* main() float x;/*存放当前输入的数* float sum=0;/*存放和,初值为0*/ printf("%P;&x);/*输入第一个数*/ while (x>0) sum+=x;,/*累加* scanf("%f",&x);/*输入下一个数,仍然放入x中,接下去判 断循环的条件是否满足* printf("和=%62f;sum);/输出所求一些数的和* 输入数据:1.12233440 0作为一些数的结束 运行结果。和=H0
第 6章 循环结构程序设计 例 6 – 1 求一些正数的和。 /*程序 6 - 1, 求一些正数之和*/ main( {float x; /*存放当前输入的数*/ float sum=0; /*存放和, 初值为0*/ printf(″%f″, &x); /*输入第一个数*/ while (x>0 {sum+=x; /*累加*/ scanf(″%f″, &x); /*输入下一个数, 仍然放入x中, 接下去判 断循环的条件是否满足*/ } printf(″和=%6.2f″, sum); /*输出所求一些数的和*/ } 输入数据: 1.1 2.2 3.3 4.4 0 0作为一些数的结束。 运行结果: 和= 11.00
第6章循环结构程序设计 例6-2计算1+2+3+.+100。 /*程序6-2,计算1+2+3+.+100* main( inti=1;/*i存放项,初值为1*/ int sum=0 while (K<=100) sum+=i,/*当i<=100,累加* i++,/*i的值改变为下一个自然数,改变后接下去判断循环的条件是否满足*/ printf("1+2+3+…+100=%d",sum);/*输出所求和* 运行结果:1+2+3+..+100=5050
第 6章 循环结构程序设计 例 6 – 2 计算 1+2+3+… +100。 /*程序 6 - 2, 计算 1+2+3+… +100 */ main( ) {int i=1; /*i 存放项, 初值为1*/ int sum=0; while (i<=100 {sum+=i; /*当i<=100, 累加*/ i++; /*i的值改变为下一个自然数, 改变后接下去判断循环的条件是否满足*/ } printf(″1+2+3+…+100=%d″, sum); /*输出所求和*/ } 运行结果: 1+2+3+…+100=5050
第6章循环结构程序设计 例6-3求一些正数的积。 /*程序6-3,求一些正数的积* main( { float X;/*存放当前输入的数* float=1;/*存放积,初始化为1*/ scanf("%f′,&x); while(x>0) {m*=x;,/*累乘* scanf("%f",&x);/*输入下一个数,仍然放x中* printf("积=6.2%",m); 输入数据:12250 运行结果:积=12.10
第 6章 循环结构程序设计 例 6-3 求一些正数的积。 /*程序 6-3, 求一些正数的积*/ main( ) {float x; /*存放当前输入的数*/ float m=1; /*存放积, 初始化为1*/ scanf(″%f″, &x); while(x>0 {m*=x; /*累乘*/ scanf(″%f″, &x); /*输入下一个数, 仍然放x中*/ } printf(″积=6.2%″, m); } 输入数据: 1.2 2 5 0 运行结果: 积 = 12.10
第6章循环结构程序设计 例6-4计算1*2*3*.*100,实际上求100!。 /*程序6-4,计算1*2*3**100*/ main( fint F1 ouble m while (K<=100) printf("1*2*3*,*100-%f,m) 运行结果:1*2*3*.*100=9.33262154439441022e+157
第 6章 循环结构程序设计 例 6 –4 计算1*2*3*…*100, 实际上求100!。 /*程序 6-4, 计算1*2*3*…*100*/ main( ) {int i=1; double m=1; while (i<=100) {m*=i; i++; } printf(″1*2*3*…*100=%f″, m); } 运行结果: 1*2*3*…*100= 9.332 621 544 394 410 22e+157
第6章循环结构程序设计 62do- while语句 do-Whle语句是 while语句的倒装形式 格式:do语句 while(条件表达式) 功能:先执行循环体,再计算条件表达式的值。当 条件表达式的值为真时,代表循环的条件成立,继续执 行循环。当条件表达式的值为假,代表循环的条件不成 立,退出循环 do- while语句是反复执行循环,直到循环的条件不 成立
第 6章 循环结构程序设计 6.2 do-while语句 do-while语句是while语句的倒装形式。 格式: do 语句 while (条件表达式) 功能: 先执行循环体, 再计算条件表达式的值。当 条件表达式的值为真时, 代表循环的条件成立, 继续执 行循环。当条件表达式的值为假, 代表循环的条件不成 立, 退出循环。 do-while语句是反复执行循环, 直到循环的条件不 成立
第6章循环结构程序设计 说明 (1)do- while语句是先执行,后判断。如果循环的条 件一开始就不成立,循环也将执行一次 (2)与 while语句一样,循环体中同样必须有改变循环 条件的语句,否则循环不能终止,形成无限循环 (3)循环体为多条语句时必须采用复合语句 (4)当循环条件为永真条件时,将变成无限循环。可 利用 break语句终止循环的执行 (5)与其它高级语言不同,C语言的直到循环与当循环 的条件是同一的,其它高级语言中是互为相反条件
第 6章 循环结构程序设计 说明: (1) do-while语句是先执行, 后判断。如果循环的条 件一开始就不成立, 循环也将执行一次。 (2) 与while语句一样, 循环体中同样必须有改变循环 条件的语句, 否则循环不能终止, 形成无限循环。 (3) 循环体为多条语句时必须采用复合语句。 (4) 当循环条件为永真条件时, 将变成无限循环。可 利用break语句终止循环的执行。 (5) 与其它高级语言不同, C语言的直到循环与当循环 的条件是同一的, 其它高级语言中是互为相反条件
第6章循环结构程序设计 (6)等价的语句加goto语句形式如下 循环体; 标号:if(条件表达式 循环体; goto标号
第 6章 循环结构程序设计 (6) 等价的if语句加goto语句形式如下: 循环体; 标号: if {循环体; goto标号; }