第三章控制结构 第一节语句级控制结构 控制结构:程序员用来规定程序各个成分 的执行流程的控制部分。 语句级控制结构:语言用来构造各种语句 执行顺序的机制。 传统语言的三种语句级控制结构:顺序、 选择、重复
第三章 控制结构 第一节 语句级控制结构 控制结构:程序员用来规定程序各个成分 的执行流程的控制部分。 语句级控制结构:语言用来构造各种语句 执行顺序的机制。 传统语言的三种语句级控制结构:顺序、 选择、重复
顺序 顺序运算符; 语句括号 begin..end 复合语句
一. 顺序 顺序运算符; 语句括号begin . . . end 复合语句
选择 1.i语句 ① ALGOL60的选择结构引起二义性 if>o then if x<l0 then x =0 else x: =1000 ②PL和 Pascal的“最近匹配原则 ③AGOL68中i句的结束符号f ④AGO68和Ada对 felse if进行缩写
二. 选择 1. if语句 ①ALGOL 60的选择结构引起二义性 if x>0 then if x<10 then x:=0 else x:=1000 ②PL/1和Pascal的“最近匹配原则” ③ ALGOL 68中if语句的结束符号fi ④ ALGOL 68和Ada对else if 进行缩写
2.多重选择 ①PL/l的 select结构 SELECT WHEN(ASI WHEN(B)S2 WHEN(C)S3 OTHERWISE S4 END
2. 多重选择 ①PL/1的select结构 SELECT: WHEN(A)S1; WHEN(B)S2; WHEN(C)S3; OTHERWISE S4; END
②多种语言的case语句 var operator: char operand1, operand2, result: boolean case operator of result operandI and operand2 + result: -operandI or operand2 result: =operandI=operand2 end
②多种语言的case语句 var operator:char; operand1,operand2,result:boolean; …… case operator of ‘.’:result:=operand1 and operand2; ‘+’:result:=operand1 or operand2; ‘=’:result:=operand1 = operand2; end
③ Dijkstra选择结构的非确定性 ifBl→S1 口B2→S2 口B3→S3 口BN→SN 其中,Bi是布尔表达式,称为卫哨。若有 多个卫哨为真时执行任Si
③Dijkestra选择结构的非确定性 if B1→S1 B2 →S2 B3 →S3 …... BN →SN 其中,Bi是布尔表达式,称为卫哨。若有 多个卫哨为真时执行任一Si
三.重复 1.计数器制导 当预先知道重复次数时,在循环计数器值的有 限集合上重复。 ① FORTRAN的DO循环中用标号控制循环体 DO7I=1,10 A(I)=0 B(I)=0 7 CONTINUE
三. 重复 1. 计数器制导 当预先知道重复次数时,在循环计数器值的有 限集合上重复。 ①FORTRAN的DO循环中,用标号控制循环体 DO 7 I=1,10 A(I)=0 B(I)=0 7 CONTINUE
② Pasca的for语句 计数重复的值可在任何有序集上 or to f or downto 在循环外循环控制变量的值无定义
②Pascal的for 语句 计数重复的值可在任何有序集上 for . . . to for . . . downto 在循环外循环控制变量的值无定义
2条件制导 ① while循环:描述0或任意多次的重复 ② repeat until循环:至少一次以上的重复 ③ ALGOL68循环的一般形式 for i from j by k to m while b do. od
2. 条件制导 ①while 循环:描述0或任意多次的重复 ②repeat until循环:至少一次以上的重复 ③ALGOL 68循环的一般形式: for i from j by k to m while b do...od
④Ada的循环结构 loop/*可以在oop前加重复说明* 循环体语句序列 end loop 重复说明可以是: whle 或form 或for In reverse终止循环
④Ada 的循环结构 loop /*可以在loop前加重复说明*/ 循环体(语句序列) end loop; 重复说明可以是: while 或 for in 或 for in reverse 可由exit或exit when终止循环