Pular para o conteúdo
Guia do Varlig
Página inicial do Varlig

Operadores, comparações e condições

Esta página cobre os símbolos e palavras que combinam valores: aritmética, a ordem em que é trabalhada, comparações que respondem true ou false e os operadores lógicos e bitwise. Use esta página quando uma linha fornecer um número diferente do que você esperava, ou quando quiser uma nota para verificar algo para você, como se você ainda está dentro do orçamento.

Aritmética

Operador Formas de escrever Exemplo Resultado
Adicionar +, plus £12.50 + £4.30 £16.80
Subtrair -, −, minus £20 - £4.50 £15.50
Multiplicar *, ×, times, multiplied by, justaposição 3 × £4.50, 2(3 + 4) £13.50, 14
Dividir /, ÷, divided by £60 / 4 £15.00
Potência ^, **, to the power of, raised to, exponent 2 ** 3, 2 raised to 10 8, 1,024
Resto mod, % (entre dois números) 50 mod 6, 50 % 6 2
Raiz quadrada √, sqrt(...), square root of √144 12
Ao quadrado / ao cubo ², ³ 3³ 27
Fatorial !, factorial(...) 5!, factorial(5) 120

A aritmética funciona em números simples, dinheiro e quantidades com unidades, e a resposta mantém a moeda ou unidade:

calc
£12.50 + £4.30 resulta em £16.80
3 * £4.50 resulta em £13.50
£1,000 * 1.05^3 resulta em £1,157.63
6 times 7 resulta em 42
100 minus 37.5 resulta em 62.5

Justaposição significa deixar de fora o *, como em 2(3 + 4) ou 2π. Multiplicação implícita explica quando isso funciona e quando não funciona.

Ordem das operações

Os cálculos seguem a ordem usual da matemática escolar:

  1. Parênteses.
  2. Fatoriais, como 5!.
  3. Potências, calculadas da direita para a esquerda: 2^3^2 é 2^9, ou seja, 512.
  4. Um sinal de menos inicial, aplicado após a potência: -2^2 é -4, enquanto (-2)^2 é 4.
  5. Multiplicação, divisão e mod, da esquerda para a direita.
  6. Adição e subtração, da esquerda para a direita.

Omitir * não altera essa ordem: em 2x^2, primeiro x é elevado ao quadrado e depois multiplicado por dois, como na notação matemática usual.

Isso significa que uma multiplicação acontece antes de uma adição ao lado dela, o que pega as pessoas ao somar uma conta:

calc
£85 - £12.50 * 2 resulta em £60.00
(£85 - £12.50) * 2 resulta em £145.00
£120 / 4 / 2 resulta em £15.00

Na dúvida, use parênteses. Eles ajudam a deixar a intenção clara e facilitam a leitura da nota depois.

Um sinal de raiz quadrada se aplica ao valor logo após ele, então √9 + 16 é 19. Coloque toda a expressão entre parênteses para tomar a raiz de uma soma:

calc
√(9 + 16) resulta em 5

Restos

mod dá o que sobrou após a divisão. É útil para dividir as coisas em grupos:

calc
eggs = 50
eggs mod 6 resulta em 2
floor(eggs / 6) resulta em 8

Cinquenta ovos enchem oito caixas de seis, com duas sobrando.

% entre dois números também calcula o resto da divisão, mesmo sem espaço antes do segundo número: 50 % 6 e 50% 6 retornam 2. Um % sem nada depois forma uma porcentagem (50%), como explicado em Porcentagens.

Fatoriais

Coloque ! imediatamente depois de um número, nome ou parêntese de fechamento para calcular seu fatorial:

calc
5! resulta em 120
runners = 4
runners! resulta em 24
3! + 2 resulta em 8
5!=4 resulta em true

O fatorial é calculado antes de uma potência adjacente: 2^3! é 2⁶, ou seja, 64. ! seguido de = continua significando "diferente de", como mostra a última linha. factorial(5) retorna a mesma resposta que 5!.

Comparação

==, !=, <, <=, > e >= comparam dois valores e retornam true ou false. Funcionam com números sem unidades, valores na mesma moeda e grandezas do mesmo tipo, mesmo que usem unidades diferentes:

calc
budget = £400
spent = £365
spent <= budget resulta em true
spent == budget resulta em false
spent != budget resulta em true
5 km == 5,000 m resulta em true
90 min >= 1.5 hours resulta em true
2 kg < 2,500 g resulta em true

As unidades são convertidas antes da comparação, então 1 mile > 1.5 km é true. Comparar coisas que medem quantidades diferentes, como quilogramas e metros, dá um erro incompatible units.

O que as comparações não fazem

  • Cadeias. 5 < x < 10 não é suportado. Em vez disso, combine duas comparações: 5 < x && x < 10.
  • Símbolos Unicode. ≠, ≤ e ≥ não são reconhecidos. Use !=, <= e >=.
  • Datas. Você não pode comparar duas datas com < ou >. Subtraia-os e compare a diferença com uma duração:
calc
deadline = 30 September 2026
booked = 14 September 2026
deadline - booked resulta em 2 weeks 2 days
deadline - booked >= 7 days resulta em true

Operadores lógicos

Combine comparações com && (as duas precisam ser verdadeiras) ou || (pelo menos uma precisa ser verdadeira). As palavras and e or funcionam da mesma forma entre duas comparações.

calc
distance = 5 km
run time = 27 min
distance >= 5 km && run time < 30 min resulta em true
distance >= 10 km || run time < 25 min resulta em false
distance >= 10 km or run time < 30 min resulta em true

true e false podem ser escritos diretamente e combinados com && e || :

calc
true || false resulta em true
true && false resulta em false

Alguns formulários que você pode esperar não são suportados:

  • and e or só funcionam entre comparações. true and false não funcionam; escreva true && false.
  • Não há operador de negação: not true e !true não funcionam. Em vez disso, compare com false, como em (spent > budget) == false.
  • or não é um retorno para erros: 1/0 or 5 não dá 5.

Usando comparações em condicionais

Uma comparação é mais útil dentro if … then … else …, que escolhe um valor dependendo da resposta:

calc
basket = £34.50
if basket >= £40 then £0 else £3.99 resulta em £3.99

Condicionais explica a sintaxe completa, incluindo else if, if e unless depois da expressão e atribuições dentro de um ramo.

Operadores bit a bit

Os números inteiros suportam os operadores bit-a-bit & (e), | (ou), xor, << (deslocar para a esquerda) e >> (mudar para a direita). As palavras maiúsculas AND, OR e XOR também funcionam. Estes são principalmente úteis para tarefas de programação, como valores de cores e permissões de arquivo.

calc
12 & 10 resulta em 8
12 | 10 resulta em 14
12 xor 10 resulta em 6
12 AND 10 resulta em 8
1 << 10 resulta em 1,024
1024 >> 3 resulta em 128

A resposta é mostrada como um número comum. Adicione to binary, in hex ou to octal para vê-lo na base em que você está trabalhando:

calc
0o644 | 0o111 to octal resulta em 0o755
colour = 0xFF8800
(colour >> 8) & 0xFF resulta em 136

Deslocamentos de bits são calculados antes de &, | e xor, mas os parênteses facilitam muito a leitura de expressões como a do exemplo de cores.

Combinando os recursos

Uma verificação mensal do orçamento que usa aritmética, comparações e lógica juntas:

calc
# September budget
take home = £2,400
rent = £1,050
bills = £230
groceries = 4 * £65 resulta em £260.00
left over = take home - rent - bills - groceries resulta em £860.00
rent / take home as % resulta em 43.75%
left over > £500 resulta em true
left over > £500 && rent <= take home * 45% resulta em true

Em groceries, a multiplicação vem antes da soma; em left over, as subtrações são feitas da esquerda para a direita. As duas últimas linhas verificam o orçamento: o resultado permanece true enquanto sobrarem mais de £500 e o aluguel não ultrapassar 45% do salário líquido. Ele muda para false assim que uma das condições deixar de ser satisfeita.