Looplex Knowledge Base
Lista de operadores
Lista de operadores
Operadores lógicos
Equals
O operador relacional Equals verifica a igualdade entre dois valores. Sua forma de uso é value1 == value2
. Exemplo:
operations { if (<x> == <y>) { print "O valor das variáveis é idêntico!" }}
Greater
O operador relacional Greater verifica se um valor é maior que outro. Sua forma de uso é value1 > value2
. Exemplo:
operations { if (<x> > 10) { print "O valor da variável é superior a 10" }}
Greater Equals
O operador relacional Greater Equals verifica se um valor é maior ou igual a outro. Sua forma de uso é value1 >= value2
. Exemplo:
operations { if (<y> >= 10) { print "A variável tem valor igual ou superior a 10" }}
Less Equals
O operador relacional Less Equals verifica se um valor é se um valor é menor ou igual a outro. Sua forma de uso é value1 ⇐ value2
. Exemplo:
operations { if (<x> ⇐ 10) { print "O valor da variável é igual ou inferior a 10" }}
Less
O operador relacional Less verifica se um valor é se um valor é menor que outro. Sua forma de uso é value1 < value2
. Exemplo:
operations { if (<x> < 10) { print "O valor da variável é inferior a 10" }}
Not Equals
O operador relacional Not Equals verifica a desigualdade entre dois valores. Sua forma de uso é value1 ~= value2
. Exemplo:
operations { if (<x> ~= 0) { print "O valor da variável é diferente de 0" }}
Conectivos lógicos
AND
O conectivo conjuntivo AND é usado para concatenar condições de modo a uni-las por meio de E-lógico. Sua forma de uso é cond1 AND cond2
. Exemplo:
operations { if (<x> > 10 AND <y> > 0) { print "A variável <x> é maior que 10 e a variável <y> é maior que 0" }}
NOT
A negação NOT é usada para inverter o conteúdo lógico de uma expressão, representando o NÃO-lógico. Sua forma de uso é NOT value
. Exemplo:
operations { if(NOT <ehPessoaFisica> OR NOT(<y> > 0)) { print "A variável <ehPessoaFisica> não é verdadeira ou a variável <y> não é maior que 0." }}
Nota: O NOT via de regra, é usado com a condição entre parênteses. Só não precisamos usar os parênteses quando usamos com uma variável boolean
OR
O conectivo disjuntivo OR é usado para concatenar condições de modo a uni-las por meio de OU-lógico. Sua forma de uso é cond1 OR cond2
. Exemplo:
operations { if (<x> > 10 OR <y> > 0) { print "A variável <x> é maior que 10 e/ou a variável <y> é maior que 0" }}
XOR
O conectivo disjuntivo XOR é usado para concatenar condições de modo a uni-las por meio de OU-lógico com exclusividade. Sua forma de uso é cond1 XOR cond2
. Exemplo:
operations { if (<x> > 10 XOR <y> > 0) { print "A variável <x> é maior que 10 ou a variável <y> é maior que 0" }}
Operadores aritméticos
Div
A operador matemático div realiza a divisão entre dois valores, sua forma de uso é value1 / value2
. Se ambos os valores forem inteiros, realiza uma divisão inteira, e se pelo menos um dos valores forem reais (Real ou Currency), realiza a divisão fracionária. Exemplo:
declarations { -<exemplo01> : Integer, -<exemplo02> : Real}operations { <exemplo01> = 11 / 2, // resultado: 5 <exemplo02> = 11.0 / 2, // resultado: 5,50 print "11/2 devolve " & <exemplo01> & " e 11.0/2 devolve " & <exemplo02>}
Mod
A operador matemático mod obtém o resto da divisão inteira entre dois valores inteiros, sua forma de uso é value1 % value2
. Exemplo:
declarations { -<varResultado> : Integer}operations { <varResultado> = 11 % 2, // resultado: 1 print "11 % 2 devolve " & <varResultado>}
Mul
A operador matemático mul realiza a multiplicação entre dois valores, sua forma de uso é value1 * value2
. Exemplo: 11.4*2 devolve 22.8
declarations { -<varResultado> : Real}operations { <varResultado> = 11.4 * 2, // resultado: 22.8 print "11.4 * 2 devolve " & <varResultado>}
Pow
A operador matemático pow realiza a potenciação entre dois valores, sua forma de uso é value1 ^ value2
. Exemplo:
declarations { -<varResultado> : Integer}operations { <varResultado> = 10 ^ 2, // resultado: 100 print "10 ^ 2 devolve " & <varResultado>}
Sub
A operador matemático sub realiza a subtração entre dois valores, sua forma de uso é value1 - value2
. Exemplo: 10-2 devolve 8
declarations { -<varResultado> : Integer}operations { <varResultado> = 10 - 2, // resultado: 8 print "10 - 2 devolve " & <varResultado>}
Sum
A operador matemático sum realiza a soma entre dois valores, sua forma de uso é value1 + value2
. Exemplo:
declarations { -<varResultado> : Integer}operations { <varResultado> = 10 + 2, // resultado: 10 print "10 + 2 devolve " & <varResultado>}
Operadores para texto
Concatenation (&)
A operador matemático strcat realiza a concatenação entre dois valores em uma String. Sua notação é value1 & value2
. No exemplo usaremos a variável <varString>
para receber um valor e usá-la no print concatenada com a string "Casa número "
.
declarations { -<varString> : String}operations { <varString> = 2, print "Casa número " & <varString> // devolve: Casa número 2}
Operadores de inclusão
In
O operador de inclusão IN é usado para testar condições em que um elemento pertença a um determinado vetor ou lista não-atômica.
No exemplo abaixo declaramos uma lista não-atômica e um vetor de string. Nas operações, temos uma sequência de "if" com o operador IN avaliando se um determinado item da lista foi selecionado pelo usuário. Se um item foi selecionado, usamos o tube add para adicionar uma string no vetor oculto.
Ao final, usamos o "if" com o operador IN para avaliar se um determinado item se encontra no vetor, caso positivo ele fará um print com um texto relacionado ao item.
declarations { +<pedidos> : List ("Danos materiais", "Danos morais", "Justiça gratuita") { atomic = false name = "Pedidos" }, -|vetorPedidos| : Vector[String]}operations { if ("Danos materiais" IN <pedidos>) { |vetorPedidos|.add("Pedido de danos materiais") }, if ("Danos morais" IN <pedidos>) { |vetorPedidos|.add("Pedido de danos morais") }, if ("Justiça gratuita" IN <pedidos>) { |vetorPedidos|.add("Pedido de justiça gratuita") }, if ("Pedido de danos materiais" IN |vetorPedidos|) { print "Pedido de indenização por danos materiais\b" }, if ("Pedido de danos morais" IN |vetorPedidos|) { print "Pedido de indenização por danos morais\b" }, if ("Pedido de justiça gratuita" IN |vetorPedidos|) { print "Pedido de concessão do benefício da justiça gratuita\b" }}
Exists
O operador existencial EXISTS é usado para testar condições em que um elemento pertença a um determinado vetor segundo um critério de existência. Sua forma de uso é EXISTS <elem> IN |vect| : condition
.
No exemplo abaixo declaramos um vetor de estrutura. Nas operações temos dois "if" com o operador EXISTS avaliando se existe ao menos um elemento do vetor com a condição determinada.
declarations { +|strPartesAutoras| : Vector[Struct] { name = "Parte autora" fields { +[nome] : String { name = "Nome" }, +[tipo] : List ("Pessoa Física", "Pessoa Jurídica") { atomic = true name = "Tipo de pessoa" } } }}operations { if (EXISTS <autora> IN |strPartesAutoras| : "Pessoa Física" == <autora.tipo>) { print "Texto usado se existir ao menos uma autora no vetor |strPartesAutoras| que seja Pessoa Física.\b" }, if (EXISTS <autora> IN |strPartesAutoras| : "Pessoa Jurídica" == <autora.tipo>) { print "Texto usado se existir ao menos uma autora no vetor |strPartesAutoras|que seja Pessoa Jurídica.\b" }}
Forall
O operador universal FORALL é usado para testar condições em que um elemento pertença a um determinado vetor segundo um critério de universalidade. Sua forma de uso é FORALL <elem> IN |vect| : condition
.
No exemplo abaixo declaramos um vetor de estrutura. Nas operações temos dois "if" com o operador FORALL avaliando se todos elementos do vetor possuem a condição determinada.
declarations { +|strPartesAutoras| : Vector[Struct] { name = "Parte autora" fields { +[nome] : String { name = "Nome" }, +[tipo] : List ("Pessoa Física", "Pessoa Jurídica") { atomic = true name = "Tipo de pessoa" } } }}operations { if (FORALL <autora> IN |strPartesAutoras| : "Pessoa Física" == <autora.tipo>) { print "Texto usado se todas autoras são Pessoa Física." }, if (FORALL <autora> IN |strPartesAutoras| : "Pessoa Jurídica" == <autora.tipo>) { print "Texto usado se todas autoras são Pessoa Jurídica." }}