決策語句

您可以讓指令碼根據您指定的條件選擇要執行的語句。使用決策語句,您可以設計指令碼以考慮不同的可能性或結果。這樣,您就可以控制指令碼中的線性流程。

這些語句的關鍵字是:

決策語句總是需要條件代碼塊。代碼塊用大括號 ( { } ) 括起來。SELECTSWITCH語句的代碼塊使用了兩個附加關鍵字:

  • CASE:定義了一組可能執行的語句之一。
  • DEFAULT:定義預設CASE。如果其他CASE語句都無法執行,則執行該語句。

每種語句類型的討論包括語法摘要。這些摘要使用某些慣例來表示語句的各個部分,以及每個部分是必需的還是可選的。

IFIF... ELSE語句

描述:評估一個運算式並根據評估的結果採用一個分支。

語法: IF <expression> <{ ... }> [ ELSE { ... } ]

Studio 動作:If

詳細資料:IF 語句評估 <expression>。根據運算式的評估方式,指令碼 執行第一組大括號 { ... } 中的代碼。運算式必須為 True,否則指令碼不會執行代碼。

當運算式結果為 false 時,若要指定指令碼的動作,則可以包含 ELSE 語句。ELSE 為可選項。當有兩個可能的動作,而您希望指令碼在它們之間做出選擇時,請使用它。如果只有一個可能的動作,而您希望指令碼只在滿足指定條件 (<expression>) 時執行該動作,則只使用 IF

在作為 IF 語句一部分的運算式 <expression> 中使用布爾值Closed 具有兩種可能值的子了類型:true 和 false。運算子。您必須使用求值為 true 或 false 的運算式。例如,x=5 是一個有效的運算式,因為變數 x 的值要麼等於 5,要麼不等於 5。

Studio 不支援在 IF 中包含多個 ELSE 語句。但是,您可以嵌入 IF 語句:


IF A > B {
// Do something
}
ELSE {
	IF A = B {
	// Do something else
	}
	ELSE {
	// Do this
	}
}

範例

IF TEST = 1
   {
      ASSIGN contactID = "123456780"
      ASSIGN customerName = "XYZ International"
      ASSIGN CBWindowStart = #"{date} 8:00 AM"
      ASSIGN CBWindowEnd = #"{date} 4:30 PM"
   }

//String Comparison

IF customerName = "ABC Corporation"
   {
      ASSIGN contractLevel = "Gold"
   }
   ELSE
      {
         ASSIGN contractLevel = "Silver"
      }

//Numeric Comparision

IF contactID % 10 = 0
   {
      ASSIGN logCall = 1
   }
   ELSE
      {
         ASSIGN logCall = 0
      }

//DateTime Comparison

ASSIGN myTime = #"{time}"

IF myTime >= CBWindowStart && myTime  <= CBWindowEnd
   {
      ASSIGN offerCallback = "True"
   }
   ELSE
      {
         ASSIGN offerCallback = "False"
      }

SELECT 語句

描述:根據第一個運算式執行一組命令以評估值是否為 True。

語法: SELECT <{ CASE <expression> [{ ... }] [CASE <expression> <{ ... }>] [CASE ...] [DEFAULT <{ ... }>] }>

詳細資料:SELECT語句中,指令碼從頂層開始對每個CASE <expression>求值,直到找到第一個求值為「true」的。如果第一個CASE <expression>的值為 true,SELECT將執行該CASE <expression>的大括號[{ ... }]中的代碼。

如果沒有CASE <expression>值為 true,指令碼將執行可選的DEFAULT { ... }代碼。

預計至少有一條CASE語句。如果包含,DEFAULT { ... }語句必須是CASE語句清單中的最後一個子句。

例如:

SELECT
{
	CASE name="Odin" { agentid = 123 }
	CASE name="Frigg" { agentid = 345 }
	CASE name.length = 0
	 {
	   ASSIGN agentid = -1
	   ASSIGN error = "Invalid name"
	 }
	DEFAULT { ASSIGN agentid = 999 }
} 

SWITCH 語句

描述:評估指定變數並執行匹配CASE所定義的動作。

語法:SWITCH <var> <{CASE <literal> [{ ... }] [CASE <literal> [{ ... }]] [CASE ...] [DEFAULT [{ ... }]] }>

詳細資料: SWITCH語句比較變數<var>的值和每個CASE <literal>的常值。當找到與CASE 匹配的時,SWITCH執行並分支到大括號CASE <literal>中與匹配{ ... }相關的代碼。

如果沒有CASE <literal><var>匹配,則執行可選的DEFAULT { ...}代碼。DEFAULT必須是嵌入SWITCH語句的語句中的最後一個子句。

SWITCH只能評估一個變數。無法評估運算式。如果使用運算式,指令碼將無法使用。

預計至少有一個CASE。所有CASE語句必須具有相同的<literal> 類型。第一個CASE決定其餘CASE語句的類型。如果任何CASE語句的類型與第一個CASE語句不同,編譯器就會出錯。以下是所有有效的常值類型:

  • CASE "john"
  • CASE 512
  • CASE #"5/15/2050"
  • CASE #"6/1/2050 7:00am"
  • CASE #"7am"

例如:

IF TEST = 1
{
  ASSIGN MyDate = "07/03/2023" //This date falls on a Monday
}
ASSIGN MyDow = MyDate.asdatedow
SWITCH MyDow
{
  CASE 0   { ASSIGN NewToday = "Sunday"  }
  CASE 1   { ASSIGN NewToday = "Monday"  }
  CASE 2   { ASSIGN NewToday = "Tuesday" }
  CASE 3   { ASSIGN NewToday = "Wednesday" }
  CASE 4   { ASSIGN NewToday = "Thursday" }
  CASE 5   { ASSIGN NewToday = "Friday"  }
  CASE 6   { ASSIGN NewToday = "Saturday"   }
}

如果多個CASE使用相同的代碼{ ... },則無需在每個後面新增代碼塊。而要一個接一個地列出CASE關鍵字,並在最後一個CASE關鍵字後面加上使用該關鍵字的代碼。這就是所謂的「案例落入」。只要SWITCH遇到的情況確實有代碼塊,就可以這樣做。下面的範例顯示了「案例落入」。對於 CASE1、2 和 3,輸出值為 hi。對於 CASE 5 和 6,輸出值為 bye

SWITCH x
{
	CASE 1
	CASE 2
	CASE 3 { TRACE "hi" }
	CASE 5
	CASE 6 { TRACE "bye" }
}

用例:SWITCH 允許您根據指定變數包含的內容獲得特定結果。例如,您可以讓指令碼評估一個包含區號的變數。您可以為每個可能的區號定義一個 CASE,然後讓指令碼為 state 變數新增一個與區號指派的狀態相匹配的值。例如:

SWITCH areaCode
{
	CASE 603 { state =  "New Hampshire" }
	CASE 614 { state =  "Ohio" }
	CASE 628 { state =  "California" }
	CASE 646 { state =  "New York" }
	CASE 667 { state =  "Maryland" }
}

CASE 語句

描述:定義可能執行的語句集之一。與 SWITCHSELECT 一起使用。

文法:可變;參見 SWITCHSELECT

Studio 動作:Case

詳細資料:CASE必須在條件碼塊中使用 SWITCHSELECT 語句。新增一條或多條 CASE 語句,以確定指令碼可能執行的塊。至少需要一條 CASE

相關:包括一項 DEFAULT 聲明,定義在指定的 CASE 聲明均不適用的情況下使用的案例。

DEFAULT 語句

描述:定義在指定的 CASE 均不適用時使用的 CASE 塊。與 SWITCHSELECT 一起使用。

文法:可變;參見 SWITCHSELECT

詳細資料:DEFAULT必須與 SWITCHSELECT 塊一起使用,並且必須至少有一個 CASE 語句存在。不能單獨使用 DEFAULTDEFAULT 始終是可選的。它必須是 CASE 語句清單中的最後一個子句。

ELSE 語句

描述:IF 運算式結果為 false,則定義指令碼執行的語句。

語法: { ELSE ... };請參見 IF

詳細資料: ELSE 始終是可選的。當運算式結果為 false 時,若要指定指令碼的行為,則可以包含 ELSE 語句。當有兩個可能的動作,而您希望指令碼在它們之間做出選擇時,請使用它。