Rexx - สัญญาณ
ใน Rexx คำสั่งสัญญาณโดยทั่วไปจะใช้เพื่อวัตถุประสงค์สองประการคือ -
หนึ่งคือการถ่ายโอนการควบคุมไปยังส่วนอื่นของโปรแกรม โดยปกติจะเหมือนกับป้ายกำกับการเดินทางซึ่งใช้ในภาษาโปรแกรมอื่น ๆ
อีกอันคือไปที่ป้ายกำกับกับดักเฉพาะ
หากคำสั่งสัญญาณถูกใช้ในคำสั่งคำสั่งใด ๆ ต่อไปนี้โครงสร้างการควบคุมที่รอดำเนินการจะถูกปิดใช้งานโดยอัตโนมัติ
ถ้า ... แล้ว ... อื่น ...
ทำ ... จบ
ทำ i = 1 ถึง n ... end [และทำลูปที่คล้ายกัน]
เลือกเมื่อ ... แล้ว ... ... ฯลฯ ไม่งั้น ... จบ
ไวยากรณ์ทั่วไปของคำสั่งสัญญาณแสดงดังนี้ -
ไวยากรณ์
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
Trap Label Transfer การเปิดใช้งาน / การปิดใช้งาน
ดังที่เราได้กล่าวไว้ก่อนหน้านี้คำสั่งสัญญาณยังสามารถใช้เพื่อถ่ายโอนการควบคุมไปยังป้ายกำกับกับดัก
ไวยากรณ์ทั่วไปของการถ่ายโอนเลเบลกับดักมีให้ดังนี้ -
ไวยากรณ์
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.