📅  最后修改于: 2020-11-02 04:04:07             🧑  作者: Mango
在Rexx中,信号指令通常用于两个目的,即-
一种是将控制权转移到程序的另一部分。通常,这类似于其他编程语言中使用的转到标签。
另一种是转到特定的陷阱标签。
如果在以下任何指令命令中使用了信号命令,则挂起的控制结构将自动停用。
如果…那么…否则…
做…结束
i = 1到n …结束[和类似的do循环]
选择何时……然后……等等。否则…结束
signal语句的一般语法如下所示-
signal labelName
signal [ VALUE ] labelExpression
让我们看一下如何使用signal语句的示例。
/* 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'
上述程序的输出如下所示。
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
如前所述,信号指令还可用于将控制权转移到陷阱标签。
陷阱标签传输的一般语法如下:
signal ON conditionName [ NAME Label ]
signal OFF conditionName
哪里,
conditionName-这是应打开或关闭信号的条件。
标签-程序应转到的可选标签。
让我们来看一个使用陷阱标签传输的示例。
/* 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.