Оператори порівняння в Julia схожі на оператори багатьох інших мов, хоча й мають додаткові можливості для любителів математики.
Для рівності є оператори == (дорівнює) та != або ≠ (не дорівнює).
txt = "abc"
txt == "abc" # true
txt != "abc" # false
txt ≠ "abc" # false (synonym for !=)
Крім того, є різні оператори «більше» та «менше».
1 < 3 # true
3 > 3 # false
3 <= 3 # true
3 ≤ 3 # true (synonym for <=)
4 >= 3 # true
4 ≥ 3 # true (synonym for >=)
Як часто буває з Julia, відповідний редактор робить використання математичного символа простим.
Наберімо \ne, \le або \ge, а потім TAB, щоб отримати ≠, ≤ або ≥.
У попередньому прикладі використано лише числа, але в інших частинах силабусу ми побачимо, що різні додаткові типи можна впорядковувати й перевіряти на більше та менше.
Оператори порівняння можна обʼєднувати в ланцюжок, що дає змогу писати чіткий і стислий код:
n = 3
1 ≤ n ≤ 5 # true (n "between" two limits)
Попередній приклад рівнозначний 1 ≤ n && n ≤ 5.
if
Це повна форма умовної конструкції if:
if conditional1
statements...
elseif conditional2
statements...
else
statements...
end
Дужки () або фігурні дужки {} не потрібні, а відступи слугують «лише» для покращення читабельності (але читабельність дуже важлива!).
І elseif, і else необовʼязкові, і блоків elseif може бути кілька.
Однак end обовʼязковий.
Можна вкладати умовні конструкції if одну в одну, хоча для кращої читабельності варто продумано використовувати дужки, відступи та коментарі.
Найкоротша форма умовної конструкції if має такий вигляд:
if n < 0
n = 0
end
Нагадаємо: як умови можна використовувати лише вирази, що обчислюються до true або false.
Julia свідомо уникає будь-якого поняття «правдивості», тому нульові значення, порожні рядки тексту (англ. string) і порожні масиви не рівнозначні false.
Проста й поширена ситуація: вибрати одне з двох значень залежно від умови.
Julia, як і багато мов, має тернарний оператор, який робить це стислішим.
Синтаксис такий: conditional ? value_if_true : value_if_false.
Отже, попередній приклад можна переписати так:
n = n < 0 ? 0 : n
Компілятор не вимагає дужок, але вони можуть покращити читабельність.
У цій вправі ми писатимемо код, щоб аналізувати виробництво на складальній лінії автомобільного заводу.
Швидкість складальної лінії може бути від 0 (вимкнено) до 10 (максимум).
За найнижчої швидкості (1) щогодини виготовляється 221 автомобіль.
Обсяг виробництва зростає лінійно разом зі швидкістю.
Тож зі швидкістю 4 вона має виробляти 4 * 221 = 884 автомобілі на годину.
Однак вищі швидкості підвищують імовірність появи бракованих автомобілів, які потім доводиться відкидати.
На нас чекають три завдання. Кожна з потрібних функцій приймає один цілочисельний параметр, швидкість складальної лінії.
Реалізуйте метод success_rate(), щоб обчислити ймовірність того, що виріб буде виготовлено без помилок за заданої швидкості.
У таблиці нижче показано, як швидкість впливає на показник успішності:
0: показник успішності 0%.1 до 4: показник успішності 100%.5 до 8: показник успішності 90%.9: показник успішності 80%.10: показник успішності 77%.julia> success_rate(10)
0.77
Реалізуйте метод production_rate_per_hour(), щоб обчислити обсяг виробництва складальної лінії за годину з урахуванням показника успішності.
julia> production_rate_per_hour(6)
1193.4
Зверніть увагу, що функція повертає число з плаваючою комою.
Реалізуйте метод working_items_per_minute(), щоб обчислити, скільки справних автомобілів виготовляється за хвилину:
julia> working_items_per_minute(6)
19
Зверніть увагу, що функція повертає ціле число: неповні вироби не враховуються.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Julia, а також 35 концепцій128 вправ та справжнє наставництво від людей, і все це безкоштовно.