Rexx-신호

Rexx에서 신호 명령은 일반적으로 두 가지 목적으로 사용됩니다.

  • 하나는 프로그램의 다른 부분으로 제어권을 이전하는 것입니다. 이것은 일반적으로 다른 프로그래밍 언어에서 사용되는 이동 레이블과 같습니다.

  • 다른 하나는 특정 트랩 레이블로 이동하는 것입니다.

신호 명령이 다음 명령 명령에 사용되면 보류중인 제어 구조가 자동으로 비활성화됩니다.

  • 만약 ... 그렇다면 ... 그렇지 않으면 ...

  • 마 ... 끝

  • do i = 1 to n ... end [및 유사한 do 루프]

  • ... 다음에 ... ... 등을 선택하십시오. 그렇지 않으면 ... 끝

신호 문의 일반적인 구문은 다음과 같습니다.

통사론

signal labelName  
   
signal [ VALUE ] labelExpression

신호 문을 사용하는 방법의 예를 살펴 보겠습니다.

/* 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'

위 프로그램의 출력은 아래와 같습니다.

산출

This is an incorrect number.

다음 프로그램과 같이 변수 n의 값을 정수로 변경하면-

/* 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 '

다음과 같은 출력을 얻을 수 있습니다.

This is a whole number

다음 프로그램과 같이 라벨 값으로 전송할 수도 있습니다.

/* 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

위 프로그램의 출력은 다음과 같이 표시됩니다.

This is the number 1

트랩 라벨 전송 활성화 / 비활성화

앞에서 언급했듯이 신호 명령을 사용하여 제어를 트랩 레이블로 전송할 수도 있습니다.

트랩 레이블 전송의 일반적인 구문은 다음과 같습니다.

통사론

signal ON conditionName [ NAME Label ] 
  
signal OFF conditionName

어디,

  • conditionName − 이것은 신호가 켜지거나 꺼져 야하는 조건입니다.

  • Label − 프로그램이 전환되어야하는 선택적 라벨.

트랩 레이블 전송을 사용하는 예를 살펴 보겠습니다.

/* 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'

위의 예에서는 먼저 오류 신호를 켭니다. 그런 다음 오류가 발생하는 문을 추가합니다. 그런 다음 사용자 지정 오류 메시지를 표시하는 오류 트랩 레이블이 있습니다.

위 프로그램의 출력은 다음과 같습니다.

An error has occurred.