编辑“︁
Modula-3
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
====循环控制结构==== Modula-3提供了循环[[控制结构]]<code>FOR</code>、<code>LOOP</code>、<code>WHILE</code>和<code>REPEAT</code>语句,和必须在字面上包围在这四个循环语句中,用于从循环中退出的<code>EXIT</code>语句。语句{{code|2="modula2"|1=LOOP S END}},循环直到<code>S</code>中有一个{{code|2="modula2"|1=EXIT}}发生。语句{{code|2="modula2"|1=WHILE B DO S END}},被定义为: <syntaxhighlight lang="modula2"> LOOP IF B THEN S ELSE EXIT END END </syntaxhighlight> 语句{{code|2="modula2"|1=REPEAT S UNTIL B}},被定义为: <syntaxhighlight lang="modula2"> LOOP S; IF B THEN EXIT END END </syntaxhighlight> <code>FOR</code>语句有如下形式:{{code|2="modula2"|1=FOR id := first TO last BY step DO S END}},这里的<code>id</code>是一个标识符,而<code>first</code>和<code>last</code>是有相同基础类型的序数表达式,<code>step</code>是整数取值的表达式。而<code>S</code>是一个语句。<code>BY step</code>是可选的,如果省略,<code>step</code>缺省为<code>1</code>。标识符<code>id</code>指示其[[作用域]]是<code>S</code>的一个只读变量,其类型是<code>first</code>和<code>last</code>共同的基础类型。<code>FOR</code>语句的语义,可如下这样用<code>WHILE</code>和<code>WITH</code>语句精确的定义为一个块: <syntaxhighlight lang="modula2"> VAR i := ORD(first); done := ORD(last); delta := step; BEGIN IF delta >= 0 THEN WHILE i <= done DO WITH id = VAL(i, T) DO S END; INC(i, delta) END ELSE WHILE i >= done DO WITH id = VAL(i, T) DO S END; INC(i, delta) END END END </syntaxhighlight> 这里的<code>T</code>是<code>id</code>的类型,<code>i</code>、<code>done</code>和<code>delta</code>代表不出现在<code>FOR</code>语句中的变量。从<code>FOR</code>语句的这个定义可以看出,如果一个<code>FOR</code>循环的上界是<code>LAST(INTEGER)</code>或<code>LAST(LONGINT)</code>,就应当将它改写为<code>WHILE</code>循环来避免溢出。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息