%SWITCH 內建函數
交換器內建函數 (%switch) 會比較 8 個交換器中的一或多個與已為工作建立的 8 個交換器設定,並傳回邏輯值 '0' 或 '1'。
工作的交換器起始值首先由 Create Job Description (CRTJOBD) 指令決定; 預設值為 00000000。 必要的話,您可以在 Submit Job (SBMJOB)、 Change
Job (CHGJOB)或 JOB 指令上使用 SWS 參數來變更此項; 這些的預設值是工作說明設定。 其他高階語言也可以設定工作切換。
如果在將 %SWITCH 值與工作值進行比較時,每個交換器都相同,則會傳回邏輯值 '1' (true)。 如果任何已測試的交換器沒有指出的值,則結果為 '0' (false)。
%SWITCH 內建函數的語法如下:
%SWITCH(8-character-mask)
8 字元遮罩用來指出要測試哪些工作開關,以及每個開關要測試的值。 遮罩中的每一個位置對應於工作中八個工作開關的其中一個。 位置 1 對應於工作開關 1、位置 2 對應於開關 2 等。 遮罩中的每一個位置可以指定為下列三個值之一: 0、1 或 X。
- 0
- 要針對 0 (關閉) 測試對應的工作開關。
- 1
- 要針對 1 (on) 測試對應的工作開關。
- X
- 不測試對應的工作開關。 交換器中的值不會影響 %SWITCH 的結果。
如果指定 %SWITCH(0X111XX0) ,則工作交換器 1 和 8 會針對 0s; 交換器 3、4 和 5 會針對 1s; 交換器 2、6 和 7 不會進行測試。 如果每一個工作交換器都包含遮罩中所顯示的值 (僅限 1 或 0) ,則 %switch 的結果為 true '1'。
可以在 CL 程式或程序中測試交換器,以控制程式或程序的流程。 此函數在 CL 程式或程序中與 If (IF) 及 Change Variable (CHGVAR) 指令搭配使用。 在 CL 程式或程序中,可以使用 Change Job (CHGJOB) 指令來變更交換器。 對於 CL 程式或程序,這些變更會立即生效。