编辑“︁
Modula-3
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
====选择控制结构==== Modula-3提供了选择[[控制结构]]<code>IF</code>和<code>CASE</code>语句。<code>IF</code>语句有如下形式: <syntaxhighlight lang="modula2"> IF B_1 THEN S_1 ELSIF B_2 THEN S_2 ... ELSIF B_n THEN S_n ELSE S_0 END </syntaxhighlight> 这里的这些<code>B</code>是布尔表达式,而这些<code>S</code>是语句。<code>ELSE S_0</code>和每个<code>ELSIF B_i THEN S_i</code>都是可选的。<code>IF</code>语句依次求值<code>B</code>,直到某个<code>B_i</code>求值为<code>TRUE</code>,则接着执行<code>S_i</code>。如果没有表达式求值为<code>TRUE</code>,并且<code>ELSE S_0</code>存在,则执行<code>S_0</code>。如果没有表达式求值为<code>TRUE</code>,并且<code>ELSE S_0</code>缺席,则<code>IF</code>语句是无操作的(no-op)。Modula-3的<code>CASE</code>语句,不同于[[Modula-2]]的同名语句,它有如下形式: <syntaxhighlight lang="modula2"> CASE Expr OF L_1 => S_1 | ... | L_n => S_n ELSE S_0 END </syntaxhighlight> 这里的<code>Expr</code>是类型为序数类型的一个表达式,而每个<code>L</code>是一个列表,这个列表构成自常量表达式,或用<code>e_1..e_2</code>指示的常量表达式的范围,它表示从<code>e_1</code>到<code>e_2</code>含二者的值。如果<code>e_1</code>超出了<code>e_2</code>,这个范围为空。如果两个<code>L</code>表示的[[集合 (数学)|集合]]有交叠,或者任何常量表达式不是类型<code>Expr</code>的一个成员,则是一个静态错误。<code>ELSE S_0</code>是可选的。 <code>CASE</code>语句求值<code>Expr</code>。如果结果的值在任何<code>L_i</code>之中,则执行<code>S_i</code>。如果这个值不在任何<code>L_i</code>之中,并且<code>ELSE S_0</code>存在,则执行它。如果这个值不在任何<code>L_i</code>中,并且<code>ELSE S_0</code>缺席,则发生一个必查的运行时间错误。一些编程者使用竖杠作为初始符(initiator),另一些编程者将它用作分隔符。Modula-3允许这两种风格,语言报告将其用作分隔符。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息