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 booleanaFechado 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 ( { } ). Os blocos de código para instruções SELECT e SWITCH usam duas palavras-chave adicionais:

  • 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: IF <expression> <{ ... }> [ ELSE { ... } ]

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 booleanoFechado 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á.

Studio não suporta ter mais de uma instrução ELSE em um IF. No entanto, você pode incorporar instruções IF:


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: SELECT <{ CASE <expression> [{ ... }] [CASE <expression> <{ ... }>] [CASE ...] [DEFAULT <{ ... }>] }>

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: uma instrução SWITCH compara o valor de uma variável <var> ao valor literal de cada CASE <literal>. Quando um CASE correspondente é encontrado, SWITCH executa e ramifica para o código dentro das chaves { ... } associado ao CASE <literal> correspondente.

Se nenhum CASE <literal> corresponder a <var>, o código opcional DEFAULT { ...} é executado. DEFAULT deve ser a última nas instruções incorporadas na instrução SWITCH.

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: { ELSE ... }; ver IF

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.