while循环语句

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环控制变量必 须有正确的初值
循环判断条件
循环控制变 量值的修改
课堂练习

#include <stdio.h> void main() { int a=5; while( --a ) printf(― %5d\n‖,a-=3); } 1 问:程序的输出结果是______.
课堂练习

#include <stdio.h> void main() { int a=5; while( a-- ) printf(― %5d\n‖,a-=3); } ? 程序陷入死循环状态 问:程序的输出结果是______.
sum=5050 sum=101
什么情况下两 者结果相同?
2016/9/1
5.3 for语句

31
语句一般格式
循环控制条件
for (表达式1;表达式2;表达式3) 语句
循环初始条件
功能:
–计算表达式1的值,再判断表达式2,如果其
循环体
值为非0(逻辑真),则执行内嵌语句(循环 体),并计算表达式3;之后再去判断表达式2, 一直到其值为0时结束循环,执行后续语句。
循环判断条件
循环控制变 量值的修改
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间对 折多少次后,报纸高度会超过珠穆朗玛峰?
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间对 折多少次后,报纸高度会超过珠穆朗玛峰?
#include <stdio.h> void main( ) { float t=0.0001; int n=0;
#include <stdio.h> void main() { int i,sum=0; scanf(“%d”,&i); while(i<=100) { sum=sum+i; i++; } printf(“sum=%d\n”,sum); }
输入:1 输入: 101
输出:sum=5050 输出:sum=0
2016/9/1
34
说明:

35
所有用 while 语句实现的循环都可以用 for 语句实现。 for(表达式1;表达式2 ;表达式3) 语句;
等价于: 表达式1; while (表达式2) { 语句; 表达式3; }
2016/9/1
for语句的简单应用
【例5.4】求n! ,即计算p=1×2×3×…×n 的值。
}
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间对 折多少次后,报纸高度会超过珠穆朗玛峰?
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(t<=8844)
}
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间对 折多少次后,报纸高度会超过珠穆朗玛峰?
2016/9/1
省略for语句的表达式
33
⑴ 表达式1、2、3全省略,即: for ( ; ; ) 就等同于:while (1),会无限循环(死循环) ⑵ 省略表达式1和表达式3,即: for(;表达式2;) 就等同于:while( 表达式2 ) ⑶ 省略表达式2,即: for(表达式1; ;表达式3) 就等同于:表达式1; while(1){…表达式3;} 注意:在省略某个表达式时,应在适当位置进行循 环控制的必要操作,以保证循环的正确执行
37
思考: 如何输出1!, 2!, … , n! ? 如何求s =1!+ 2!+ … + n! ?
此程序 的功能?
while和do-while循环的比较。
#include <stdio.h> void main() { int i,sum=0; scanf(“%d”,&i); do { sum=sum+i; i++; } while(i<=100); printf(“sum=%d\n”,sum); }
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间对 折多少次后,报纸高度会超过珠穆朗玛峰?
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(t<=8844) { t=t*2; n++; } printf(“ %3d\n”,n); }

区别:
do- while 语句先执行循环体再判断条 件,循环体至少执行一次; – while 语句先判断条件再执行循环体, 循环体有可能一次也不执行 do—while循环体中一定要有能使表达式 值趋于0的操作(如i++),否则会出现死循 环。
2016/9/1
30
二、do-while语句
举例
非0 语 句
注意:

为了保证循环正常运行,
应该特别注意:

循环控制变量的初始化 (循环的初始值) 循环条件(状态)的检查 (确认是否进行循环) 循环控制变量值的修改 (使循环趋于结束)


while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间 对折10次后,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001;
2016/9/1
例如:
⑴ i=1; for ( ; i<=100; i++) sum+=i; ⑵ for (i=1; ; i++) { … if(i>100)… …} ⑶ for (i=1; i<=100; ) {…i++; … } ⑷ i=1; for ( ; ; ) { … if(i>100) … i++; … }
2016/9/1
for语句的算法
流程图 计算表达式1 N-S结构图 for (表达式1;表达式2;表达式3) 语句
32
表达式2 为真?
Y 语句 计算表达式3
N
例如: 可部分或全部省略, main( ) 但“;”不可省略 { int i,sum; sum=0; for ( i=1; i<=100; i++) sum=sum+i; printf("sum=%d\n",sum); }
课堂练习

#include <sຫໍສະໝຸດ Baidudio.h> void main() { int a=5; while( --a ); printf(― %5d\n‖,a-=3); } -3 ? 问:程序的输出结果是______.
do-while语句

27
语句一般格式 do 语句 while (表达式);

功能: – 先执行内嵌语句(循环体),之后计算 表达式的值,不为0(逻辑真)时,再 执行循环体并判断条件,直到表达式的 值为 0 结束循环,转去执行while下面 的语句。
36
思路:求阶乘与求累加的运算处理过程类似,只要 将“+”变为“*”。
设置: 乘数i ,初值为1,终值为n(n是循环控制 终值,需要从键盘输入) 累乘器 p ,每次循环令p = p*i
2016/9/1
程序:
main( ) { int i, n; long p; p=1; printf("Enter n:"); scanf("%d",&n); for (i=1; i<=n; i++) p = p * i; printf("p = %ld \n",p); }

假设一张报纸厚0.1毫米,将报纸从中间 对折10次后,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(n<10) { t=t*2; n++; } printf(“ %f\n”,t); } 0.1024
循环控制变量必 须有正确的初值
2016/9/1
循环结构的引入

假设一张报纸厚0.1毫米,将报纸从中间 对折10次后,报纸会有多厚? 计算机对同样的操作可以用 循环结构完成.
循环结构可以使我们只
写很少的语句,而让计 算机反复执行,从而完 成大量类同的操作。
循环结构概述


循环结构是结构化程序三种基本结构之一
C语言提供了三种循环控制语句,构成了三 种基本的循环结构:

while语句构成的循环结构 do-while语句构成的循环结构

for语句构成的循环结构
while循环控制

while循环控制结构一般格式 while (表达式) 循环体语句
一般为关系表达式 或逻辑表达式,也 可以是C语言其他类 型的合法表达式 用来控制循环体是 否执行

称为循环体语句, 可以是基本语句、 也可以是复合语 句. 是循环重复执行 的部分
循环结构的引入

假设一张报纸厚0.1毫米,将报纸从中间 对折,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001; t=t*2; printf(“ %f”,t); }
0.0002
循环结构的引入

假设一张报纸厚0.1毫米,将报纸从中间 对折3次后,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(n<10)
}
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间 对折10次后,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(n<10) t=t*2; n++;
#include <stdio.h> void main( ) { float t=0.0001; t=t*2; t=t*2; t=t*2; printf(“ %f”,t); }
循环结构的引入

假设一张报纸厚0.1毫米,将报纸从中间 对折3次后,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001; t=t*2; t=t*2; t=t*2; printf(“ %f”,t); }
}
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间 对折10次后,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001; int n=0;
}
2016/9/1
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间 对折10次后,报纸会有多厚?
C 语言程序设计教程
第4章 循环结构
While语句
循环结构的引入

假设一张报纸厚0.1毫米,将报纸从中间 对折,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001;/*t表示报纸的厚度*/ t=t*2; printf(“ %f\n”,t); }

while语句

While语句的一般格式 while (表达式) 循环体语句
执行过程是:
(1)先计算while后面的表达式的值, 如果其值为“真”则执行循环体。
表达式
0
(2)执行完循环体后,再次计算 while后面的表达式的值,如果其 值为“真”则继续执行循环体, 如果表达式的值为“假”,退出 此循环结构。
2016/9/1
do-while循环的算法
(2)直到型循环(do~while语句) do 语句
语句(循环体) 非 零 表达式? 零
至少执 行一次
28
while( 表达式 );
特点 :先执行后判断,循
环体至少执行一次。适用
于循环体至少执行一次, 且总次数不确定的情况。
2016/9/1
说明:

29
while和do-while都能实现循环控制,while 结构程序通常都可以转换成do-while结构
}
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间 对折10次后,报纸会有多厚?
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(n<10) { t=t*2; n++; } }
while 循环控制结构
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(t<=8844) { t=t*2; n++; } }
while 循环控制结构

假设一张报纸厚0.1毫米,将报纸从中间对 折多少次后,报纸高度会超过珠穆朗玛峰?
#include <stdio.h> void main( ) { float t=0.0001; int n=0; while(t<=8844) { t=t*2; n++; } printf(“ %d\n”,n); }
相关文档
最新文档