Signals
优质
小牛编辑
135浏览
2023-12-01
在Rexx中,信号指令通常用于两个目的,即 -
一种是将控制权转移到该计划的另一部分。 这通常类似于其他编程语言中使用的首选标签。
另一种是去特定的陷阱标签。
如果在以下任何指令命令中使用signal命令,则将自动停用待处理的控制结构。
如果......那么......其他......
做...结束
做我= 1到n ...结束[和类似的做循环]
选择......然后......等等。 否则......结束
signal语句的一般语法如下所示 -
语法 (Syntax)
signal labelName
signal [ VALUE ] labelExpression
我们来看一个如何使用signal语句的例子。
例子 (Example)
/* Main program */
n = 100.45
if\datatype( n, wholenumber ) then
signal msg
say 'This is a whole number'
return 0
msg :
say 'This is an incorrect number'
上述程序的输出如下所示。
输出 (Output)
This is an incorrect number.
如果将变量n的值更改为整数,如以下程序所示 -
/* Main program */
n = 100
if\datatype( n, wholenumber ) then
signal msg
say ' This is a whole number '
return 0
msg :
say ' This is an incorrect number '
您将获得以下输出 -
This is a whole number
也可以转移到标签的值,如下面的程序所示 -
/* Main program */
n = 1
if\datatype( n, wholenumber ) then
signal msg
if n < 1 | n > 3 then
signal msg
signal value n
3 : say 'This is the number 3'
2 : say ' This is the number 2'
1 : say ' This is the number 1'
return n
msg :
say ' This is an incorrect number '
exit 99
上述程序的输出如下所示 -
This is the number 1
陷阱标签转移激活/取消激活
正如我们前面提到的,信号指令也可用于将控制转移到陷阱标签。
陷阱标签传输的一般语法如下 -
语法 (Syntax)
signal ON conditionName [ NAME Label ]
signal OFF conditionName
Where,
conditionName - 这是应该打开或关闭信号的条件。
Label - 程序应转移到的可选标签。
让我们看一个使用陷阱标签传输的示例。
例子 (Example)
/* Main program */
signal on error
signal on failure
signal on syntax
signal on novalue
beep(1)
signal off error
signal off failure
signal off syntax
signal off novalue
exit 0
error: failure: syntax: novalue:
say 'An error has occured'
在上面的例子中,我们首先打开错误信号。 然后我们添加一个会导致错误的语句。 然后我们有错误陷阱标签来显示自定义错误消息。
上述程序的输出如下所示 -
An error has occurred.