📅  最后修改于: 2020-11-02 04:00:23             🧑  作者: Mango
Rexx中的代码通常分为功能和子例程。使用函数有助于将代码分成更多的逻辑单元。让我们详细看看这些功能。
函数声明的语法如下-
FunctionName:
PARSE ARG arguement1, arguement2… arguementN
Return value
哪里,
FunctionName-这是分配给函数的名称。
PARSE ARG-这些是Rexx中的关键字,用于表示将参数传递给函数。
争论1,争论2…争论N-这些是传递给函数的参数。
返回值-这是由函数返回的值。
以下程序是有关如何在Rexx中使用功能的简单示例。
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
return a + b
关于上述程序,应注意以下几点:
我们定义了一个名为add的函数,该函数接受2个参数a和b。
该函数使用return语句返回a和b的和。
exit语句必须用于表示主程序的结束。
上述程序的输出如下-
11
在Rexx中,可以使用某些特定功能来处理参数。让我们看几个这样的论点。
这种方法被用来返回对函数定义的参数的数目。
语法–
arg()
参数-无
返回值-这个方法返回为该函数定义的参数个数。
示例–
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg()
return a + b
输出-运行上述程序时,将得到以下结果。
2
11
此方法用于返回特定位置的参数值。
语法–
arg(index)
参数–
索引-要返回的参数的索引位置。
返回值-此方法返回特定位置的参数值。
示例–
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg(1)
return a + b
输出-运行上述程序时,将得到以下结果。
5
11
递归函数或例程是调用自身的函数。任何递归函数都可以以传统的非递归方式(或迭代方式)进行编码,但是有时递归提供了更好的问题解决方案。并非所有的编程语言都支持递归。雷克斯做到了。
我们来看一个使用Rexx中的递归函数的著名析因程序的示例。
/* Main program */
do n = 1 to 5
say 'The factorial of' n 'is:' factorial( n )
end
return
/* Function to get factorial */
factorial : procedure
n = arg(1)
if n = 1 then
return 1
return n * factorial( n - 1 )
上面程序的输出如下-
The factorial of 1 is: 1
The factorial of 2 is: 2
The factorial of 3 is: 6
The factorial of 3 is: 24
The factorial of 3 is: 120