功能( Functions)
优质
小牛编辑
131浏览
2023-12-01
Rexx中的代码通常分为函数和子例程。 使用函数有助于将代码分离为更多逻辑单元。 让我们详细看看这些功能。
定义一个函数 (Defining a Function)
函数声明的语法如下 -
FunctionName:
PARSE ARG arguement1, arguement2… arguementN
Return value
Where,
FunctionName - 这是分配给函数的名称。
PARSE ARG - 这些是Rexx中的关键字,用于提及参数传递给函数。
arguement1, arguement2… arguementN - 这些是传递给函数的参数。
Return value - 这是函数返回的值。
以下程序是Rexx中如何使用函数的简单示例。
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
return a + b
关于上述计划,应注意以下事项 -
我们定义了一个名为add的函数,它接受2个参数a和b。
该函数使用return语句返回a和b的总和。
退出语句必须用于表示主程序的结束。
上述方案的产出如下 -
11
使用参数
在Rexx中,可以使用特定的函数来处理参数。 让我们看看几个这样的论点。
arg
此方法用于返回为函数定义的参数数。
Syntax -
arg()
Parameters - 无
Return Value - 此方法返回为函数定义的参数数。
Example -
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg()
return a + b
Output - 当我们运行上述程序时,我们将得到以下结果。
2
11
arg(index)
此方法用于返回特定位置的参数值。
Syntax -
arg(index)
Parameter -
Index - 要返回的参数的索引位置。
Return Value - 此方法返回特定位置的参数值。
Example -
/* Main program */
say add(5,6)
exit
add:
PARSE ARG a,b
say arg(1)
return a + b
Output - 当我们运行上述程序时,我们将得到以下结果。
5
11
递归函数 (Recursive Functions)
递归函数或例程是自称的函数。 任何递归函数都可以以传统的非递归方式(或迭代)进行编码,但有时递归提供了更好的问题解决方案。 并非所有编程语言都支持递归; 雷克斯。
让我们看一下使用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