电子科技大学计算机科学与工程学院编译原理课件第3章 控制结构.pptVIP

  • 0
  • 0
  • 约7.64千字
  • 约 94页
  • 2019-05-06 发布于广东
  • 举报

电子科技大学计算机科学与工程学院编译原理课件第3章 控制结构.ppt

第3章 控制结构 控制结构: 规定程序各个成分(程序单元以及语句)的执行流程的控制机制。 语句级控制结构 单元级控制结构 第一节 语句级控制结构 语句级控制结构: 用来构造各种语句执行顺序的机制。 传统语言的三种语句级控制结构: 顺序 选择(分支) 重复(循环) 语言可用的、最简单的控制结构。 利用顺序运算符; A ;B 复合语句 若干个语句可以通过顺序运算符组合在一起作为一个单独的语句. 复合语句括号:begin…end {…} 二. 选择 选择控制结构允许程序员在某些可选择的语句中做出一种选择来执行。 单选 if then 二选一 if then else 多选一 嵌套if then else 或 case … 1. 单选 if then max=a; if (ab) then max=b; 语句max=b 要么执行 要么不执行 if (ab) then max=a else max=b; max=a 和 max=b 只选择其中一个执行 3. 多选一 嵌套if then else ①ALGOL 60的选择结构引起二义性 if x0 then if x6 then x:=0 else x:=9 ②PASCAL的“最近匹配原则” ③ ALGOL 68中if语句的结束符号fi ④ ALGOL 68对else if 进行缩写 if a then S1 else if b then S2 else if c then S3 else S4 fi fi fi if a then S1 elif b then S2 elif c then S3 else S4 fi ①PL/1的select结构 SELECT: WHEN (A) S1; WHEN (B) S2; WHEN (C) S3; OTHERWISE S4; END ② PASCAL的case语句: var operator:char; operand1,operand2,result:real; …… case operator of ‘+’: result:=operand1+ operand2; ‘-’ : result:=operand1 - operand2; ‘/’ : result:=operand1 / operand2; ‘*’ :result:=operand1 * operand2 end ③ C语言的switch语句 char opr; float op1,op2,result; …. C语言 switch (opr) case ‘+’:result:=op1 + op2;break; case ‘-’: result:=op1 - op2; break; case ‘/’: result:= op1 / op2; break; case ‘*’:result:= op1 * op2;break; end if B1 → S1 □B2 → S2 □B3 → S3 … □BN → SN fi Bi是布尔表达式,称为卫哨。 若有多个卫哨为真时执行任意一个Si。 1. 计数器制导 当预先知道重复次数时,在循环计数器值的有限集合上重复。 FORTRAN的DO循环 用标号控制循环体 DO 7 I=1,10 A(I)=0 B(I)=0 7 CONTINUE 计数重复的值可在任何有序集上 for . . . to for . . . downto ①while:0次或多次的重复 ②do-while,repeat-until:多次的重复 ③ALGOL 68循环的一般形式: for i from j by k to m while b do...od loop 循环体(语句序列) end loop; 可由exit或exit when条件终止循环 do B1→S1 ? B2→S2 . . . ? BN→SN od 四. 语句级控制结构讨论 顺序、选择、重复是一定意义的抽象。 顺序

文档评论(0)

1亿VIP精品文档

相关文档