Перейти до вмісту
Посібник Varlig
Головна сторінка Varlig

Оператори, порівняння й умови

Тут описано символи й слова для поєднання значень: арифметику, порядок дій, порівняння з відповіддю true або false, логічні й побітові оператори. Це допоможе зрозуміти неочікуваний результат або доручити нотатці перевірку, наприклад дотримання бюджету.

Арифметика

Оператор Варіанти запису Приклад Результат
Додавання +, plus £12.50 + £4.30 £16.80
Віднімання -, −, minus £20 - £4.50 £15.50
Множення *, ×, times, multiplied by, запис поруч без знака 3 × £4.50, 2(3 + 4) £13.50, 14
Ділення /, ÷, divided by £60 / 4 £15.00
Піднесення до степеня ^, **, to the power of, raised to, exponent 2 ** 3, 2 raised to 10 8, 1,024
Остача mod, % (між двома числами) 50 mod 6, 50 % 6 2
Квадратний корінь √, sqrt(...), square root of √144 12
Квадрат / куб ², ³ 3³ 27
Факторіал !, factorial(...) 5!, factorial(5) 120

Арифметика працює з числами без одиниць, грошима й величинами з одиницями, зберігаючи валюту чи одиницю у відповіді:

calc
£12.50 + £4.30 дорівнює £16.80
3 * £4.50 дорівнює £13.50
£1,000 * 1.05^3 дорівнює £1,157.63
6 times 7 дорівнює 42
100 minus 37.5 дорівнює 62.5

Неявне множення — це пропуск *, як у 2(3 + 4) або 2π. Розділ Неявне множення пояснює, коли це працює.

Порядок операцій

Обчислення дотримуються звичайного шкільного порядку:

  1. Дужки.
  2. Факторіали, як-от 5!.
  3. Степені справа наліво: 2^3^2 означає 2^9, тобто 512.
  4. Початковий мінус після піднесення до степеня: -2^2 дає −4, а (-2)^2 — 4.
  5. Множення, ділення й mod зліва направо.
  6. Додавання й віднімання зліва направо.

Пропуск * не змінює порядку: 2x^2 спершу підносить x до квадрата, потім подвоює, як формула в підручнику.

Отже, множення виконується раніше за сусіднє додавання, про що легко забути, складаючи рахунок:

calc
£85 - £12.50 * 2 дорівнює £60.00
(£85 - £12.50) * 2 дорівнює £145.00
£120 / 4 / 2 дорівнює £15.00

Якщо сумніваєтеся, додайте дужки. Вони не завадять і полегшать подальше читання нотатки.

Знак квадратного кореня стосується значення відразу після нього, тому √9 + 16 дає 19. Для кореня із суми візьміть увесь вираз у дужки:

calc
√(9 + 16) дорівнює 5

Остачі

mod повертає остачу від ділення. Це зручно для розподілу на групи:

calc
eggs = 50
eggs mod 6 дорівнює 2
floor(eggs / 6) дорівнює 8

П’ятдесят яєць заповнюють вісім коробок по шість; два залишаються.

% між числами також означає остачу, навіть без пробілу: 50 % 6 і 50% 6 дають 2. % без значення після нього утворює відсоток (50%); див. Відсотки.

Факторіали

Поставте ! відразу після числа, імені чи закривальної дужки для факторіала:

calc
5! дорівнює 120
runners = 4
runners! дорівнює 24
3! + 2 дорівнює 8
5!=4 дорівнює true

Факторіал обчислюється раніше за сусідній степінь: 2^3! означає 2⁶, тобто 64. ! перед = і далі означає «не дорівнює», як в останньому рядку. factorial(5) дає те саме, що й 5!.

Порівняння

==, !=, <, <=, > і >= порівнюють значення й повертають true або false. Працюють із числами без одиниць, сумами в одній валюті та величинами одного фізичного змісту, навіть у різних одиницях:

calc
budget = £400
spent = £365
spent <= budget дорівнює true
spent == budget дорівнює false
spent != budget дорівнює true
5 km == 5,000 m дорівнює true
90 min >= 1.5 hours дорівнює true
2 kg < 2,500 g дорівнює true

Перед порівнянням одиниці перетворюються: 1 mile > 1.5 km дає true. Несумісні величини, наприклад кілограми й метри, спричиняють incompatible units.

Чого порівняння не роблять

  • Ланцюжки. 5 < x < 10 не підтримується. Поєднайте два порівняння: 5 < x && x < 10.
  • Символи Unicode. ≠, ≤ і ≥ не розпізнаються. Використовуйте !=, <= та >=.
  • Дати. Дві дати не можна порівнювати через < або >. Відніміть їх і порівняйте різницю з тривалістю:
calc
deadline = 30 September 2026
booked = 14 September 2026
deadline - booked дорівнює 2 weeks 2 days
deadline - booked >= 7 days дорівнює true

Логічні оператори

Поєднуйте порівняння через && (обидва істинні) або || (хоча б одне істинне). Слова and та or між двома порівняннями працюють так само.

calc
distance = 5 km
run time = 27 min
distance >= 5 km && run time < 30 min дорівнює true
distance >= 10 km || run time < 25 min дорівнює false
distance >= 10 km or run time < 30 min дорівнює true

true і false можна писати безпосередньо та поєднувати через && і ||:

calc
true || false дорівнює true
true && false дорівнює false

Деякі очікувані форми не підтримуються:

  • and та or працюють лише між порівняннями. true and false не працює; пишіть true && false.
  • Оператора заперечення немає: not true і !true не працюють. Натомість порівнюйте з false, наприклад (spent > budget) == false.
  • or не підставляє запасне значення при помилці: 1/0 or 5 не дає 5.

Використання порівнянь в умовах

Порівняння найкорисніше всередині if … then … else …, що вибирає значення за результатом умови:

calc
basket = £34.50
if basket >= £40 then £0 else £3.99 дорівнює £3.99

Повний синтаксис, зокрема else if, постфіксні if та unless і присвоєння всередині гілки, описано в розділі Умови.

Побітові оператори

Цілі числа підтримують побітові оператори & (І), | (АБО), xor (виключне АБО), << (зсув ліворуч) і >> (зсув праворуч). Великі слова AND, OR та XOR також працюють. Це переважно корисно для програмування, наприклад кольорів і прав доступу до файлів.

calc
12 & 10 дорівнює 8
12 | 10 дорівнює 14
12 xor 10 дорівнює 6
12 AND 10 дорівнює 8
1 << 10 дорівнює 1,024
1024 >> 3 дорівнює 128

Відповідь показується звичайним числом. Додайте to binary, in hex або to octal для потрібної системи числення:

calc
0o644 | 0o111 to octal дорівнює 0o755
colour = 0xFF8800
(colour >> 8) & 0xFF дорівнює 136

Зсуви обчислюються раніше за &, | і xor, але дужки роблять записи на кшталт прикладу з кольором зрозумілішими.

Поєднання можливостей

Перевірка місячного бюджету, що поєднує арифметику, порівняння й логіку:

calc
# September budget
take home = £2,400
rent = £1,050
bills = £230
groceries = 4 * £65 дорівнює £260.00
left over = take home - rent - bills - groceries дорівнює £860.00
rent / take home as % дорівнює 43.75%
left over > £500 дорівнює true
left over > £500 && rent <= take home * 45% дорівнює true

У groceries множення виконується перед додаванням, а left over віднімає зліва направо. Останні два рядки перевіряють умови: відповідь залишається true, поки залишок більший за £500, а оренда не перевищує 45 % чистого доходу; вона стає false, щойно одна з умов порушується.