%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 程式或程序,這些變更會立即生效。