📄 7.5.0.htm
字号:
<html>
<head>
<title>编译原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link type="text/css" rel="stylesheet" href="../css/specification.css">
</head>
<body>
<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='7.4.4b.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='7.6.1.htm'"></img></td>
</tr>
</table>
<br><br>
<font class="title2"><b>7.5 CASE语句</b></font>
<table><tr><td>    </td>
<td class="content">
<p>
许多程序设计语言中含有“switch”语句或“case”语句。假定switch语句的语法如下: <BR> <B> <font color="#0000FF">switch</font></B>
expression <BR> <B> <font color="#0000FF">begin</font> </B><BR> <B> <font color="#0000FF">case</font></B>
value<SPAN class=down><sub>1</sub></SPAN>: statement<SPAN class=down><sub>1</sub></SPAN> <BR>
<B> <font color="#0000FF">case</font></B>
value<SPAN class=down><sub>2</sub></SPAN>: statement<SPAN
class=down><sub>2</sub></SPAN> <BR> ......................... <BR>
<B> <font color="#0000FF">case</font></B> value<SPAN class=down><sub>n-1</sub></SPAN> statement<SPAN
class=down><sub>n-1</sub></SPAN> <BR> <B> <font color="#0000FF">defalt</font></B>:statement<SPAN
class=down><sub>n</sub></SPAN> <BR> <B> <font color="#0000FF">end</font></B>
<BR> 这里expression是一个表达式,称为选择器,它将被计算出一个值。表达式后面跟随的value<SPAN
class=down><sub>1</sub></SPAN>,value<SPAN class=down><sub>2</sub></SPAN>,…,value<SPAN
class=down><sub>n-1</sub></SPAN>是表达式可能取的值,default称为"缺席值" 它用来在expression的值不等于任何value<sub>i</sub>时来匹配expression。对于switch的语句的预期翻译可表示如下: <BR> 1.对表达式求值;
<BR> 2.在列出的value<SPAN class=down><sub>1</sub></SPAN>,value<SPAN
class=down><sub>2</sub></SPAN>,…,value<SPAN
class=down><sub>n-1</sub></SPAN>这些值中寻找与表达式的值相等的值。如果没有这样的值存在,则让“缺席值”与表达式匹配; <BR>
3.执行在(2)中寻找到的值相联系的话句(某个statement)。 <BR> 这样,switch语句的目标代码结构可作如下安排: <BR>
对expression求值并置于t的有关代码 <BR> goto test <BR>
L<SPAN class=down><sub>1</sub></SPAN>: 有关statement<SPAN class=down><sub>1</sub></SPAN>的代码
<BR> goto next <BR> L<SPAN
class=down><sub>2</sub></SPAN>: 有关statement<SPAN class=down><sub>2</sub></SPAN>的代码 <BR>
goto next <BR> L<SPAN class=down><sub>n-1</sub></SPAN>: 有关statement<SPAN
class=down><sub>n-1</sub></SPAN>的代码 <BR> goto next <BR> L<SPAN
class=down><sub>n</sub></SPAN>: 有关statement<sub>n</sub>的代码 <BR> goto next <BR>
test:if t=value<SPAN class=down><sub>1</sub></SPAN> goto L<SPAN class=down><sub>1</sub></SPAN>
<BR> if t=value<SPAN class=down><sub>2</sub></SPAN> goto L<SPAN
class=down><sub>2</sub></SPAN> <br>
.................<br>
if t=value<SPAN class=down><sub>n-1</sub>
</SPAN>goto L<SPAN class=down><sub>n-1</sub></SPAN><br>
goto L<SPAN
class=down><sub>n</sub></SPAN> <BR> next: <BR>
Pascal语言中的case语句与上述switch语句在形式上类似。
</p>
</td></tr></table>
<br>
<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='7.4.4b.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='7.6.1.htm'"></img></td>
</tr>
</table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -