Instruções de tomada de decisão
Você pode fazer com o que seu script selecione uma tarefa para desempenhar com base nas condições que especificar Usando uma instrução de tomada de decisão, é possível criar o script para lidar com várias possibilidades e resultados diferentes. Isso permite que você controle o fluxo linear do que acontece no seu script.
As palavras-chave para essas instruções são:
- IF: selecione qual opção executar com base no resultado da avaliação de uma expressão booleana Um tipo de dados que tem dois valores possíveis: true e false..
- SELECT: executa a primeira instrução em uma série de instruções avaliadas como true.
- SWITCH: avalia uma expressão e compara o resultado para definir casos. Ela toma a ação definida no caso correspondente.
Instruções de tomada de decisão sempre exigem blocos de código condicionais. Blocos são inseridos dentro de chaves (
- CASE: define uma de um conjunto de possíveis instruções a ser executada.
- DEFAULT: define CASE padrão. Esta é a instrução que é executada se nenhuma das outras instruções CASE puder ser executada.
A discussão de cada tipo de instrução inclui um resumo de sintaxe. Esses resumos usam certas convenções para indicar as partes da instrução e se cada parte é obrigatória ou opcional.
Instruções IF e IF... ELSE
Descrição: avalia uma expressão e toma um ramal dependendo do resultado da avaliação.
Sintaxe:
Ação do Studio: If
Detalhes: instruções IF avaliam uma <expression>. Dependendo de como a expressão é avaliada, o script executa o código no primeiro conjunto de chaves { ... }. A expressão deve ser avaliada como true ou o script não executará o código.
Você pode incluir a instrução ELSE se quiser especificar o que o script faz quando a expressão é avaliada como false. ELSE é opcional. Use-a quando houver duas ações possíveis e quando quiser que o script escolha entre elas. Use IF sozinha quando houver apenas uma ação possível e quando quiser que o script a execute apenas quando a condição especificada (<expression>) for atendida.
Use um operador booleano Um tipo de dados que tem dois valores possíveis: true e false. na expressão <expression> que é parte da instrução IF. Você deve usar uma expressão que é avaliada ou como true ou como false. Por exemplo, x=5 é uma expressão válida pois o valor da variável x ou será igual a 5 ou não será.
Além de operadores matemáticos regulares para multiplicação, divisão, adição e subtração, você também pode usar os seguintes operadores:
- Operador módulo (%)
- Potência/expoente (^)
- Divisão inteira (\)
- Exclusivo OU (~)
A ordem regular de operações matemáticas é aplicada a todas as expressões. Qualquer coisa entre parênteses é avaliada primeiro como uma subunidade. Operadores de potência/expoentes são avaliados em segundo. Multiplicação e divisão são avaliadas depois, seguidas por adição e subtração. Operadores de comparação são os últimos a ser avaliados, depois que todas as operações matemáticas tiverem sido concluídas.
Operadores Booleanos
Você pode usar os seguintes operadores Booleanos em snippets. Todos esses operadores podem ser usados com comparações
SÍMBOLO do operador | NOME DO OPERADOR | Detalhes |
---|---|---|
= | Igual | Se os dois lados da expressão forem equivalentes, a expressão resultará em |
!= | Não igual | Se os dois lados da expressão não forem equivalentes, a expressão será avaliada como |
> | Maior que |
Se o lado direito da expressão for menor do que o esquerdo, a expressão resultará em |
>= | Maior que ou igual |
Se o lado direito da expressão for menor que ou igual ao esquerdo, a expressão resultará em |
< | Menor que |
Se o lado esquerdo da expressão for menor do que o direito, a expressão resultará em |
<= | Menor ou igual |
Se o lado esquerdo da expressão for menor que ou igual ao direito, a expressão resultará em |
& | e | Se todas as sub-expressões forem avaliadas como true, a expressão inteira resultará em |
| | ou | Se qualquer uma das sub-expressões for avaliada como true, a expressão resultará em |
Studio não suporta ter mais de uma instrução
IF A > B {
// Do something
}
ELSE {
IF A = B {
// Do something else
}
ELSE {
// Do this
}
}
Exemplo
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"
}
Instruções SELECT
Descrição: Executa um conjunto de comandos com base na primeira expressão a ser avaliada como true.
Sintaxe:
Detalhes: Em uma instrução SELECT, o script avalia cada CASE <expression> começando pelo topo e descendo até encontrar a primeira que é avaliada como true. Para a primeira CASE <expression> avaliada como true, SELECT executa o código dentro das chaves [{ ... }] daquela CASE <expression>.
Se nenhuma CASE <expression> for avaliada como true, o script executará o código opcional DEFAULT { ... }.
Pelo menos uma instrução CASE é esperada. Se incluída, a instrução DEFAULT { ... } deve ser a última cláusula na lista de instruções CASE.
Por exemplo:
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 }
}
Instruções SWITCH
Descrição: avalia a variável especificada e toma a ação definida pelo CASE correspondente.
Sintaxe: SWITCH <var> <{CASE <literal> [{ ... }] [CASE <literal> [{ ... }]] [CASE ...] [DEFAULT [{ ... }]] }>
Detalhes:
Se nenhum CASE <literal> corresponder a <var>, o código opcional
SWITCH pode apenas avaliar uma variável. Ela não pode avaliar uma expressão. Se usar uma expressão, seu script não funcionará.
Pelo menos um CASE é esperado. Todas as instruções CASE devem ter o mesmo tipo de <literal>. O primeiro CASE determina o tipo para as instruções CASE restantes. Se qualquer instrução CASE tiver um tipo diferente do primeiro CASE, um erro de compilação ocorrerá. Todos os exemplos a seguir são de tipos literais válidos:
- CASE "john"
- CASE 512
- CASE #"5/15/2050"
- CASE #"6/1/2050 7:00am"
- CASE #"7am"
Por exemplo:
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" }
}
Se mais de um CASE usa o mesmo código { ... }, não é preciso incluir um bloco de código após cada um. Em vez disso, liste as palavras-chave CASE uma após a outra, com o código após o último CASE que usa tal código. Isso é chamado de caída de case. Isso é permitido desde que haja um case que tem um bloco de código para o SWITCH encontrar. O exemplo a seguir mostra uma caída de case. Para os CASEs 1, 2 e 3, a saída é o valor hi. Para os CASEs 5 e 6, a saída é bye.
SWITCH x
{
CASE 1
CASE 2
CASE 3 { TRACE "hi" }
CASE 5
CASE 6 { TRACE "bye" }
}
Usar case: SWITCH permite que você tenha resultados específicos dependendo do que a variável especificada contém. Por exemplo, é possível fazer com que o script avalie uma variável contendo códigos de área. Você pode definir um CASE para cada código de área possível e fazer o script adicionar um valor à variável state que corresponde ao estado ao qual o código de área é atribuído. Por exemplo:
SWITCH areaCode
{
CASE 603 { state = "New Hampshire" }
CASE 614 { state = "Ohio" }
CASE 628 { state = "California" }
CASE 646 { state = "New York" }
CASE 667 { state = "Maryland" }
}
Instruções CASE
Descrição: define um de um conjunto de instruções possíveis para ser executado. Usado com SWITCH ou SELECT.
Sintaxe: varia; consulte SWITCH ou SELECT
Ação do Studio: Case
Detalhes: CASE deve ser usado no bloco de código condicional de um(a) SWITCH ou instrução SELECT. Adicione uma ou mais instruções CASE para definir os possíveis blocos para o script executar. Ao menos um CASE é necessário.
Relacionado: inclui uma instrução DEFAULT para definir o caso a ser usado se nenhuma das instruções CASE especificadas for aplicável.
Instruções DEFAULT
Descrição: Define o bloco CASE que é usado se nenhuma das CASE especificadas for aplicável. Usada com SWITCH e SELECT.
Sintaxe: Varia; consulte SWITCH ou SELECT
Detalhes: DEFAULT deve ser usada com blocos SWITCH ou SELECT e deve haver pelo menos uma instrução CASE presente. DEFAULT não pode ser usada por conta própria. DEFAULT é sempre opcional. Ela deve ser a última cláusula na lista de instruções CASE.
Instruções ELSE
Descrição: define a instrução que o script executa se a expressão IF for avaliada como false.
Sintaxe:
Detalhes: ELSE sempre é opcional. Você pode incluir uma instrução ELSE se quiser especificar o que o script faz quando a expressão é avaliada como false. Use-a quando há duas ações possíveis e você quer que o script escolha entre elas.