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.