Przejdź do treści
Przewodnik po Varlig
Strona główna Varlig

Operatory, porównania i warunki

Ta strona opisuje symbole i słowa łączące wartości: działania arytmetyczne, kolejność ich wykonywania, porównania zwracające true lub false oraz operatory logiczne i bitowe. Zajrzyj tu, gdy wiersz daje inną liczbę, niż oczekujesz, albo gdy chcesz, aby notatka coś sprawdzała, na przykład czy nadal mieścisz się w budżecie.

Arytmetyka

Operator Sposoby zapisu Przykład Wynik
Dodawanie +, plus £12.50 + £4.30 £16.80
Odejmowanie -, −, minus £20 - £4.50 £15.50
Mnożenie *, ×, times, multiplied by, zapis obok siebie 3 × £4.50, 2(3 + 4) £13.50, 14
Dzielenie /, ÷, divided by £60 / 4 £15.00
Potęgowanie ^, **, to the power of, raised to, exponent 2 ** 3, 2 raised to 10 8, 1,024
Reszta z dzielenia mod, % (między dwiema liczbami) 50 mod 6, 50 % 6 2
Pierwiastek kwadratowy √, sqrt(...), square root of √144 12
Kwadrat / sześcian ², ³ 3³ 27
Silnia !, factorial(...) 5!, factorial(5) 120

Działania arytmetyczne obsługują liczby bez jednostek, kwoty i wielkości z jednostkami. Wynik zachowuje walutę lub jednostkę:

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

Zapis przez zestawienie oznacza pominięcie *, jak w 2(3 + 4) lub 2π. Mnożenie domyślne wyjaśnia, kiedy to działa, a kiedy nie.

Kolejność działań

Obliczenia są wykonywane w zwykłej kolejności znanej ze szkoły:

  1. Nawiasy.
  2. Silnie, takie jak 5!.
  3. Potęgi, obliczane od prawej do lewej: 2^3^2 to 2^9, czyli 512.
  4. Początkowy znak minusa, stosowany po potęgowaniu: -2^2 to -4, a (-2)^2 to 4.
  5. Mnożenie, dzielenie i mod, od lewej do prawej.
  6. Dodawanie i odejmowanie, od lewej do prawej.

Pominięcie * nie zmienia tej kolejności: 2x^2 najpierw podnosi x do kwadratu, a dopiero potem podwaja wynik, tak jak we wzorze z podręcznika.

Oznacza to, że mnożenie jest wykonywane przed sąsiednim dodawaniem, co łatwo przeoczyć przy sumowaniu rachunku:

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

W razie wątpliwości dodaj nawiasy. Nie zaszkodzą, a później ułatwią odczyt notatki.

Znak pierwiastka kwadratowego dotyczy wartości bezpośrednio po nim, więc √9 + 16 to 19. Aby obliczyć pierwiastek z sumy, umieść całe wyrażenie w nawiasie:

calc
√(9 + 16) daje 5

Reszty z dzielenia

mod zwraca resztę z dzielenia. Przydaje się przy dzieleniu rzeczy na grupy:

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

Pięćdziesiąt jaj wypełnia osiem pudełek po sześć sztuk; dwa jaja pozostają.

% między dwiema liczbami również oznacza resztę z dzielenia, nawet bez spacji przed drugą liczbą: 50 % 6 i 50% 6 dają 2. % bez niczego po nim tworzy wartość procentową (50%), opisaną w rozdziale Procenty.

Silnie

Umieść ! bezpośrednio po liczbie, nazwie lub nawiasie zamykającym, aby obliczyć silnię:

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

Silnia jest obliczana przed sąsiednią potęgą, więc 2^3! to 2⁶, czyli 64. ! z następującym po nim = nadal oznacza „różne od”, jak pokazuje ostatni wiersz. factorial(5) daje ten sam wynik co 5!.

Porównywanie

==, !=, <, <=, > i >= porównują dwie wartości i zwracają true lub false. Obsługują liczby bez jednostek, kwoty w tej samej walucie oraz wielkości mierzące to samo, nawet w różnych jednostkach:

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

Jednostki są przeliczane przed porównaniem, więc 1 mile > 1.5 km daje true. Porównanie różnych wielkości, takich jak kilogramy i metry, powoduje błąd incompatible units.

Czego porównania nie obsługują

  • Łańcuchy porównań. 5 < x < 10 nie jest obsługiwane. Połącz zamiast tego dwa porównania: 5 < x && x < 10.
  • Symbole Unicode. ≠, ≤ i ≥ nie są rozpoznawane. Użyj !=, <= i >=.
  • Daty. Nie można porównywać dwóch dat za pomocą < ani >. Odejmij je od siebie i porównaj różnicę z czasem trwania:
calc
deadline = 30 September 2026
booked = 14 September 2026
deadline - booked daje 2 weeks 2 days
deadline - booked >= 7 days daje true

Operatory logiczne

Łącz porównania za pomocą && (oba muszą być prawdziwe) lub || (co najmniej jedno musi być prawdziwe). Słowa and i or działają tak samo między dwoma porównaniami.

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

true i false można wpisywać bezpośrednio i łączyć za pomocą && i ||:

calc
true || false daje true
true && false daje false

Niektóre spodziewane formy zapisu nie są obsługiwane:

  • and i or działają tylko między porównaniami. true and false nie działa; wpisz true && false.
  • Nie ma operatora negacji: not true i !true nie działają. Zamiast tego porównaj z false, jak w (spent > budget) == false.
  • or nie zapewnia wartości zastępczej przy błędzie: 1/0 or 5 nie daje 5.

Porównania w wyrażeniach warunkowych

Porównanie jest szczególnie przydatne w if … then … else …, które wybiera wartość zależnie od wyniku:

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

Warunki opisują pełną składnię, w tym else if, końcowe if i unless oraz przypisania wewnątrz gałęzi.

Operatory bitowe

Liczby całkowite obsługują operatory bitowe & (AND), | (OR), xor, << (przesunięcie w lewo) i >> (przesunięcie w prawo). Działają też słowa pisane wielkimi literami: AND, OR i XOR. Przydaje się to głównie w zadaniach programistycznych, na przykład przy wartościach kolorów i uprawnieniach plików.

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

Wynik jest wyświetlany jako zwykła liczba. Dodaj to binary, in hex lub to octal, aby zobaczyć go w używanym systemie liczbowym:

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

Przesunięcia są wykonywane przed &, | i xor, ale nawiasy znacznie ułatwiają odczyt wiersza takiego jak przykład z kolorem.

Przykład całościowy

Kontrola miesięcznego budżetu łącząca arytmetykę, porównania i logikę:

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

W groceries mnożenie odbywa się przed dodawaniem, a left over odejmuje od lewej do prawej. Ostatnie dwa wiersze zamieniają notatkę w kontrolę: wynik pozostaje true, dopóki zostaje ponad £500, a czynsz nie przekracza 45% dochodu netto. Zmienia się na false, gdy choć jeden z tych warunków przestaje być spełniony.