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.