我们假定要讨论的开关语句的形式为:
switch E of
case V1:S1
case V2:S2
…
case Vn-1:Sn-1
default:Sn
end
这里的E是一个表达式,也称为选择子。开关语句是分情形选择机制,在E被计算之后,测试它的值符合哪种case中的值,而执行和该值相关的语句,并做相应的转移。如果E的值不能与任何Vi(1≤i≤n-1)匹配,便执行"default"时的语句。
直观上看,case语句翻译成如下的一连串条件转移语句。
t∶=E;
L1:if t≠V1
goto L2;
S1;
goto next;
L2:if t≠V2
goto L3;
S2
goto next;
…
Ln-1:if t≠Vn-1
goto Ln;
Sn-1;
goto next;
Ln:Sn;
next:
|