決策語句
本説明頁面上的資訊同時適用於 CXone Studio 和 Desktop Studio。
您可以讓指令碼根據您指定的條件選擇要執行的語句。使用決策語句,您可以設計指令碼以考慮不同的可能性或結果。這樣,您就可以控制指令碼中的線性流程。
這些語句的關鍵字是:
- IF:根據布爾 具有兩種可能值的子了類型:true 和 false。運算式的計算結果選擇要執行的選項。
- SELECT:執行一系列語句中的第一個,其值為 true。
- SWITCH:評估運算式,並將結果與定義的案例進行比較。它執行相符案例中定義的動作。
決策語句總是需要條件代碼塊。代碼塊用大括號 (
- CASE:定義了一組可能執行的語句之一。
- DEFAULT:定義預設CASE。如果其他CASE語句都無法執行,則執行該語句。
每種語句類型的討論包括語法摘要。這些摘要使用某些慣例來表示語句的各個部分,以及每個部分是必需的還是可選的。
IF 和IF... ELSE 語句
描述:評估一個運算式並根據評估的結果採用一個分支。
語法:
Studio 動作:If
詳細資料:IF 語句評估 <expression>。根據運算式的評估方式,指令碼 執行第一組大括號 { ... } 中的代碼。運算式必須為 True,否則指令碼不會執行代碼。
當運算式結果為 false 時,若要指定指令碼的動作,則可以包含 ELSE 語句。ELSE 為可選項。當有兩個可能的動作,而您希望指令碼在它們之間做出選擇時,請使用它。如果只有一個可能的動作,而您希望指令碼只在滿足指定條件 (<expression>) 時執行該動作,則只使用 IF。
在作為 IF 語句一部分的運算式 <expression> 中使用布爾值 具有兩種可能值的子了類型:true 和 false。運算子。您必須使用求值為 true 或 false 的運算式。例如,x=5 是一個有效的運算式,因為變數 x 的值要麼等於 5,要麼不等於 5。
除了用於乘法、除法、加法和減法的常規數學運算子外,您還可以使用這些運算子:
- 模運算子 (%)
- 冪/指數 (^)
- 整除 (\)
- 異或 (~)
常規數學運算順序適用於所有運算式。括號中的任何內容作為子單元首先進行運算。指數/冪運算子第二個被運算。先運算乘法和除法,再運算加法和減法。在完成所有數學運算後,比較運算子最後被運算。
布爾運算子
您可以在 Snippet 中使用以下布爾運算子。所有這些運算子都可以用於
運算子符號 | 運算子名稱 | 詳細資料 |
---|---|---|
= | 相等 | 如果運算式的兩邊相等,則運算式的結果為 |
!= | 不相等 | 如果運算式的兩邊不相等,則運算式的值為 |
> | 大於 |
如果運算式的右邊小於左邊,則運算式的結果為 |
>= | 大於或等於 |
如果運算式的右邊小於或等於左邊,則運算式的結果為 |
< | 小於 |
如果運算式的左邊小於右邊,則運算式的結果為 |
<= | 小於或等於 |
如果運算式的左邊小於或等於右邊,則運算式的結果為 |
& | 和 | 如果全部子運算式的值都為 true,則整個運算式的結果為 |
| | 或 | 如果任一個子運算式的值為 True,則運算式的結果為 |
Studio 不支援在
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>求值,直到找到第一個求值為「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 [{ ... }]] }>
詳細資料:
如果沒有CASE <literal>與<var>匹配,則執行可選的
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 語句
描述:定義可能執行的語句集之一。與 SWITCH 或 SELECT 一起使用。
Studio 動作:
詳細資料:CASE必須在條件碼塊中使用 SWITCH或 SELECT 語句。新增一條或多條 CASE 語句,以確定指令碼可能執行的塊。至少需要一條 CASE。
相關:包括一項 DEFAULT 聲明,定義在指定的 CASE 聲明均不適用的情況下使用的案例。
DEFAULT 語句
描述:定義在指定的 CASE 均不適用時使用的 CASE 塊。與 SWITCH 和 SELECT 一起使用。
詳細資料:DEFAULT必須與 SWITCH 或 SELECT 塊一起使用,並且必須至少有一個 CASE 語句存在。不能單獨使用 DEFAULT。DEFAULT 始終是可選的。它必須是 CASE 語句清單中的最後一個子句。
ELSE 語句
描述:若 IF 運算式結果為 false,則定義指令碼執行的語句。
語法:
詳細資料: ELSE 始終是可選的。當運算式結果為 false 時,若要指定指令碼的行為,則可以包含 ELSE 語句。當有兩個可能的動作,而您希望指令碼在它們之間做出選擇時,請使用它。