📜  Rexx教程(1)

📅  最后修改于: 2023-12-03 15:34:43.367000             🧑  作者: Mango

Rexx教程

简介

Rexx是一种高级程序设计语言,它是由IBM公司在20世纪80年代开发的。Rexx是一种强大、可扩展和易于学习的编程语言,可以用于各种应用程序的开发,如系统脚本、文本处理和Web应用程序等。本教程将介绍Rexx语言的基本概念和语法,帮助程序员快速入门Rexx编程。

安装Rexx

在开始学习Rexx编程之前,需要先安装Rexx编译器。目前,Rexx编译器有多个版本可供选择,包括:

  • Regina Rexx
  • ooRexx
  • NetRexx
  • Personal Rexx

你可以从它们官方网站的下载页面下载并安装最新的版本。在安装完毕后,即可开始编写Rexx程序。

基本语法

Rexx语言与其他计算机编程语言有些相似之处,也有着自己的特殊之处。下面是Rexx程序的基本语法结构:

/*这是一个Rexx程序*/
say 'Hello, world!'

上面的程序首先使用注释来标注程序的用途。接着,它通过使用say命令输出了一条简单的消息。say命令是Rexx语言中内置的,用于在终端或控制台上输出文本。在Rexx中,可以使用注释、命令、表达式和子程序等来构建程序。

注释

为了使程序易于阅读和理解,Rexx语言允许使用注释来标注程序代码的用途和说明。Rexx中有两种注释:

  • 行注释:使用/**/将注释括起来,在这两个符号之间的部分将被解释器忽略。
  • 行尾注释:在每行的末尾使用--符号后跟注释文本。该行末尾的任何字符都将被解释器忽略,并且注释文本将从这一行末尾的--符号开始。

例如:

/* 这是一个行注释 */

say '这是第一行' -- 这是一个行尾注释
say '这是第二行' -- 又一个行尾注释
变量

在Rexx语言中,可以使用变量来存储和操作数据。Rexx中的变量可以是字符串、数字或其他数据类型。变量在使用前必须先声明,可以使用parse命令和var命令来声明一个变量。例如:

/*声明变量*/
parse var x y z
var name

上面的程序通过parse命令声明了三个变量xyz,这些变量将存储从键盘或其他输入源读取的字符串。使用var命令声明了一个变量name,这是一个空白变量。在Rexx中,字符串变量必须用引号括起来,例如:

/*定义和初始化变量*/
name = 'Tom'
age = '28'

上面的程序将字符串'Tom'赋值给了name变量,将字符串'28'赋值给了age变量。

运算符

在Rexx中,可以使用各种算术符号和逻辑运算符来计算表达式的值。以下是一些常用的运算符:

算术运算符

Rexx中的算术运算符包括:

| 运算符 | 描述 | | --- | --- | | + | 加 | | - | 减 | | * | 乘 | | / | 除 | | ** | 幂 |

关系运算符

Rexx中的关系运算符包括:

| 运算符 | 描述 | | --- | --- | | = | 等于 | | > | 大于 | | < | 小于 | | >= | 大于等于 | | <= | 小于等于 | | == | 严格等于 | | \textless\textgreater | 不等于 |

逻辑运算符

Rexx中的逻辑运算符包括:

| 运算符 | 描述 | | --- | --- | | NOT | 非 | | AND | 与 | | OR | 或 |

例如:

a = 10
b = 5
c = 2
/*算术运算*/
say a + b   --输出15
say a * c   --输出20
say a / b   --输出2
say b ** c  --输出25

/*关系运算*/
say a > b   --输出1(TRUE)
say a < c   --输出0(FALSE)
say a = c   --输出0(FALSE)
say a == b  --输出0(FALSE)
say a \= b  --输出1(TRUE)

/*逻辑运算*/
say NOT 1   --输出0(FALSE)
say NOT 0   --输出1(TRUE)
say AND 1 0 --输出0(FALSE)
say AND 1 1 --输出1(TRUE)
say OR 1 0  --输出1(TRUE)
say OR 0 0  --输出0(FALSE)
流程控制

在Rexx语言中,可以使用条件语句和循环语句来控制程序的流程。以下是一些常用的流程控制语句:

条件语句

Rexx中的条件语句包括:

  • IF语句:用于在满足条件时执行操作。
  • IF...ELSE语句:用于在满足条件时执行一组操作,在不满足条件时执行另一组操作。
  • SELECT语句:用于根据给定的多个条件选择要执行的操作。

例如:

/*IF语句*/
a = 10
b = 5
if a > b then
  say 'a 大于 b'

/*IF...ELSE语句*/
if a > b then do
  say 'a 大于 b'
end
else do
  say 'a 小于或等于 b'
end

/*SELECT语句*/
select
  when a > b then
    say 'a 大于 b'
  when a < b then
    say 'a 小于 b'
  otherwise
    say 'a 等于 b'
end
循环语句

Rexx中的循环语句包括:

  • DO WHILE语句:用于在满足条件时执行循环操作。
  • DO UNTIL语句:用于在不满足条件时执行循环操作。
  • DO i=1 TO n语句:用于指定循环的次数。
  • DO WHILE语句:用于在满足条件时执行循环操作。

例如:

/*DO WHILE循环*/
count = 1
do while (count <= 5)
  say '当前计数值:' count
  count = count + 1
end

/*DO UNTIL循环*/
count = 1
do until (count > 5)
  say '当前计数值:' count
  count = count + 1
end

/*DO i=1 TO n循环*/
do i=1 to 5
  say '当前计数值:' i
end

/*DO WHILE循环*/
count = 1
do while (count <= 5)
  say '当前计数值:' count
  count = count + 1
end
函数和子程序

在Rexx语言中,可以使用函数和子程序来执行特定的操作,并将结果返回给程序。Rexx中的函数和子程序分别由PROCEDUREFUNCTION语句定义,两者的区别在于FUNCTION语句返回一个值。例如:

/*定义一个子程序*/
procedure showMsg
  say '这是一个子程序'
end

/*定义一个函数*/
function addOne(x)
  tmp = x + 1
  return tmp
end

在上面的程序中,showMsg子程序接受一个参数并打印消息。addOne函数接受一个参数x,计算x+1的结果并返回。

文件操作

Rexx语言支持多种文件操作方式,例如打开、读取和写入文件等操作。Rexx中的文件操作通常使用OPENREADWRITE等命令来实现。例如:

/*打开一个文件*/
INPUTFILE = 'mydata.txt'
IF STREAM(INPUTFILE, "C", "QUERY EXISTS") = 0 THEN
  do
    say '文件不存在'
    exit
  end
ELSE
  INFILE = STREAM(INPUTFILE, "R")

/*读取文件*/
DO WHILE LINES(INFILE) > 0
  LINEIN = LINEIN(INFILE)
  SAY LINEIN
END

/*关闭文件*/
EXCLUDEDSRC = STREAM(INPUTFILE, "C", "CLOSE")

在上面的程序中,首先检查指定的文件是否存在。如果存在,打开文件进行读取操作,读取每一行的内容并输出。最后,关闭文件。

结论

本教程介绍了Rexx编程语言的基本概念和语法,帮助程序员快速了解和学习Rexx编程。如果您有任何问题或需要更多的帮助,请参考Rexx的官方文档或寻求其他资源的支持。