Rexx - Tín hiệu
Trong Rexx, hướng dẫn tín hiệu thường được sử dụng cho hai mục đích, đó là -
Một là chuyển quyền điều khiển sang một phần khác của chương trình. Điều này thường giống như nhãn go-to được sử dụng trong các ngôn ngữ lập trình khác.
Hai là đi đến một nhãn bẫy cụ thể.
Nếu lệnh tín hiệu được sử dụng trong bất kỳ lệnh hướng dẫn nào sau đây, cấu trúc điều khiển đang chờ xử lý sẽ tự động bị vô hiệu hóa.
nếu ... thì ... khác ...
làm ... kết thúc
do i = 1 to n ... end [và các vòng lặp tương tự]
chọn khi ... sau đó ... ... vv. nếu không thì ... kết thúc
Cú pháp chung của câu lệnh signal được trình bày như sau:
Cú pháp
signal labelName
signal [ VALUE ] labelExpression
Hãy xem một ví dụ về cách sử dụng câu lệnh tín hiệu.
Thí dụ
/* 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'
Kết quả của chương trình trên sẽ như hình dưới đây.
Đầu ra
This is an incorrect number.
Nếu bạn thay đổi giá trị của biến n thành một số nguyên như trong chương trình sau:
/* 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 '
Bạn sẽ nhận được kết quả sau:
This is a whole number
Người ta cũng có thể chuyển sang giá trị của nhãn như trong chương trình sau:
/* 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
Kết quả của chương trình trên sẽ được hiển thị như sau:
This is the number 1
Kích hoạt / Hủy kích hoạt chuyển nhãn bẫy
Như chúng ta đã đề cập trước đó, lệnh tín hiệu cũng có thể được sử dụng để chuyển điều khiển đến nhãn bẫy.
Cú pháp chung của chuyển nhãn Trap được đưa ra như sau:
Cú pháp
signal ON conditionName [ NAME Label ]
signal OFF conditionName
Ở đâu,
conditionName - Đây là điều kiện mà tín hiệu nên được bật hoặc tắt.
Label - Nhãn tùy chọn mà chương trình sẽ được chuyển hướng đến.
Hãy xem một ví dụ về việc sử dụng chuyển nhãn bẫy.
Thí dụ
/* 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'
Trong ví dụ trên, trước tiên chúng ta bật các tín hiệu lỗi. Sau đó, chúng tôi thêm một câu lệnh sẽ dẫn đến lỗi. Sau đó, chúng tôi có nhãn bẫy lỗi để hiển thị thông báo lỗi tùy chỉnh.
Kết quả của chương trình trên sẽ như sau:
An error has occurred.