第6讲三种循环结构 一、 while语句 二、 do-while语句 三、for语句
第6讲 三种循环结构 一、while 语句 二、do-while 语句 三、for 语句
循环结构也称重复结构:程序中反复执行的 组指令或程序段。 循环体:被反复执行的程序段。 循环变量:用来控制循环是否继续进行的变量 循环结构有两种类型即当型循环和 直到型循环
循环结构也称重复结构:程序中反复执行的一 组指令或程序段。 循环体:被反复执行的程序段。 循环变量:用来控制循环是否继续进行的变量。 循环结构有两种类型即当型循环和 直到型循环
方框图及执行过程: 0(假) 表达式 非0(真) 语句A 语句 表达式 非0(真) 0(假) 当型循环 直到型循环
方框图及执行过程 : 非0(真) 0(假) 表达式 语 句 当型循环 非 0 (真) 0 (假) 语句 A 表达式 直到型循环
、 while语句 格式: while()语句A; 流程图: 若表达式(条 0(假) 件)的值为真,则 表达式 执行内嵌语句A, 非0(真) 再判断表达式(条 件)…,当表达式 语句A 的值为假时,执行 whle后面的语句
一、while 语句 格式: while () 语句A; 非 0(真) 0(假) 语句 A 表达式 流程图: 若表达式(条 件)的值为真,则 执行内嵌语句A, 再判断表达式(条 件)···,当表达式 的值为假时,执行 while后面的语句
whe语句的说明: (1)whi1e语句属当型循环,即先 判断条件(表达式),再执行循环体 0(假) (2)表达式为一条件,用于控制循 表达式 环是否可继续执行,故称控制表达式。 非0(真) (3)语句A为内嵌式语句,是循环结 语句A 构的循环体。它可以是单语句也可以 是复合语句,且该语句中必须包含有 对循环条件进行修改的语句
while语句的说明: (1) while语句属当型循环,即先 判断条件(表达式),再执行循环体。 (2) 表达式为一条件,用于控制循 环是否可继续执行,故称控制表达式。 (3) 语句A为内嵌式语句,是循环结 构的循环体。它可以是单语句也可以 是复合语句,且该语句中必须包含有 对循环条件进行修改的语句。 非0(真) 0(假) 语句A 表达式
例6.1求1+2+…+100 分析: 求和的过程为: S0=0 SI=S0+1 2)S=1+2 S2=S1+2 3)S=1+2+3 S3=S2+3 100)S=1+2+…+100 S100=S99+100 求和表达式: S=S+ 初值: S=0 循环次数i: 1~100
例6.1 求 1 + 2 + ······ + 100 分析: 求和的过程为: 1) S=1 S1 = S0 + 1 2) S=1+2 S2 = S1 + 2 3) S=1+2+3 S3 = S2 + 3 ······ ······ 100) S=1+2+ ··· +100 S100 = S99+100 S0 = 0 求和表达式: S = S + i 初值: S = 0 循环次数 i : 1~100
流程图: 程序: 定义变量s, main) f int s=,i=1 s=0,i=1 while(i<=100) i<100 {S+ 循环条件控制语句 s+=; i++ i+十 循环条件改变语句 printf("s=%ldn",S); 输出s
定义 变量 s, i s=0, i=1; i≤ 100 s+=i; i++; 输 出s N Y 流程图: 程序: main ( ) { int s, i; s = 0,i = 1; while ( i < = 100 ) { s+=i; i++; } printf("s=%ld\n", s); } 循环条件控制语句 循环条件改变语句
注意: 如果循环体中包含一个以上的语句,应该用花括弧 括起来,以复合语句的形式出现。如果不加花括弧,则 whle语句的范围只到whle后的第一个分号处。 在循环体中应该有使循环趋向结束的语句,否则会 导致死循环。 如上例中的语句改写 则whil语句的循环体语句为 成如下形式 循环变量i的值没有改变,循 while(i<=100) 环不能终止,陷入死循环 i++;
注意: 如果循环体中包含一个以上的语句,应该用花括弧 括起来,以复合语句的形式出现。如果不加花括弧,则 while语句的范围只到while后的第一个分号处。 在循环体中应该有使循环趋向结束的语句,否则会 导致死循环。 如上例中的语句改写 成如下形式: i=1; while ( i < = 100 ) s+=i; i++; 则while语句的循环体语句为: s+=i; 循环变量i的值没有改变,循 环不能终止,陷入死循环
二、do- while语句 格式:do while(); 流程图: 语句A 表达式 非0(真) 0(假)
二、do-while 语句 格式: do while ( ); 流程图: 非 0(真) 0(假) 语句 A 表达式
执行过程: 执行内嵌语句A,在判断表达式(条件)若为真,则 继续执行内嵌语句A,再判断表达式(条件)…,直到表 达式的值为假时,执行 do-while后面的语句。 与 while语句的不同: do- whilel语句至少执行循环体一次,但 while语句当 条件为假时不执行循环体语句
执行内嵌语句A,在判断表达式(条件)若为真,则 继续执行内嵌语句A,再判断表达式(条件)···,直到表 达式的值为假时,执行do-while后面的语句。 执行过程: 与while语句的不同: do-while语句至少执行循环体一次,但while语句当 条件为假时不执行循环体语句