首页 理论教育 转移和循环操作:无条件转移、循环语句及编程举例

转移和循环操作:无条件转移、循环语句及编程举例

时间:2023-06-25 理论教育 版权反馈
【摘要】:有三种转移和循环操作可供使用:1.无条件转移转移到标有顺序号n的程序段。O9500;程序名N10 #1=0;存储和的变量初值N20 #2=1;被加数变量的初值N30 IF[#2 GT 10]GOTO 70;当被加数#2大于10时,程序转移到N70N40 #1=#1+#2;计算和N50 #2=#2+#1;下一个被加数N60 GOTO 30;转到N30N70 M30;程序结束3.循环语句在WHILE后指定一个条件表达式。若用1、2、3以外的值会产生P/S报警No.126。见表1-23循环嵌套表。用WHILE语句实现循环可减少处理时间。表1-23 循环嵌套表(续)5)编程举例。

转移和循环操作:无条件转移、循环语句及编程举例

在程序中,使用GOTO语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用:

978-7-111-33271-8-Chapter01-38.jpg

1.无条件转移(GOTO语句)

转移到标有顺序号n的程序段。当指定1~99999以外的顺序号时,出现P/S报警No.128。可用表达式指定顺序号。

指令格式:GOTO n;n为顺序号(1~99999)

例如:GOTO 1;

GOTO#10;

2.条件转移(IF语句)

指令格式1:IF[<条件表达式>]GOTO n;IF之后指定条件表达式

如果指定的条件表达式满足时,转移到标有顺序号n的程序段。如果指定的条件表达式不满足时,执行下一个程序段。

978-7-111-33271-8-Chapter01-39.jpg

指令格式2:IF[<条件表达式>]THEN;

如果指定的条件表达式满足时,执行预先决定的宏程序语句。只执行一个宏程序语句。

例如:如果#1和#2的值相同,0赋给#3。

指令格式:IF[#1 EQ#2]THEN#3=0;

1)条件表达式。条件表达式必须包括运算符。运算符插在两个变量中间或变量和常数中间,并且用括号([,])封闭。表达式可以替代变量。

2)运算符。运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等号。表1-22为运算符含义。

表1-22 运算符含义

978-7-111-33271-8-Chapter01-40.jpg

3)编程举例。用程序计算数值1~10的总和。

O9500;程序名

N10 #1=0;存储和的变量初值

N20 #2=1;被加数变量的初值

N30 IF[#2 GT 10]GOTO 70;当被加数#2大于10时,程序转移到N70

N40 #1=#1+#2;计算和(www.xing528.com)

N50 #2=#2+#1;下一个被加数

N60 GOTO 30;转到N30

N70 M30;程序结束

3.循环(WHILE)语句

在WHILE后指定一个条件表达式。当指定条件满足时,执行从DO到END之间的程序;否则,转而执行END之后的程序段。与IF语句的指令格式相同。DO后的数和END后的数为指定程序执行范围的标号,标号值为1、2、3。若用1、2、3以外的值会产生P/S报警No.126。

978-7-111-33271-8-Chapter01-41.jpg

1)嵌套。在DO—END循环中的标号(1~3)可根据需要多次使用。但是当程序有交叉重复循环(DO范围重叠)时,出现P/S报警No.124。见表1-23循环嵌套表。

2)无限循环。当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。

3)处理时间。在处理有标号转移的GOTO语句时,进行顺序号检索。反向检索所需的时间要比正向检索长。用WHILE语句实现循环可减少处理时间。

4)未定义的变量。在使用EQ或NE的条件表达式中,<空>和零有不同的效果。在其他形式的条件表达式中,<空>被当作零。

表1-23 循环嵌套表

978-7-111-33271-8-Chapter01-42.jpg

(续)

978-7-111-33271-8-Chapter01-43.jpg

5)编程举例。用程序计算数值1~10的总和。

O0001;程序名

N10 #1=0;存储和的变量初值

N20 #2=1;被加数变量的初值

N30 WHILE [#2 GE 10] DO 1;当被加数#2大于或等于10时,程序转移到N70

N40 #1=#1+#2;计算和

N50 #2=#2+#1;下一个被加数

N60 END1;

N70 M30;程序结束

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈