Треки
/
Julia
Julia
/
Салабус
/
Умовні конструкції
Ум

Умовні конструкції у Julia

7 вправ

Про концепцію Умовні конструкції

Оператори порівняння

Оператори порівняння в 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

Компілятор не вимагає дужок, але вони можуть покращити читабельність.

Чи є в Julia конструкція match?

Конструкції match/case у базовій мові наразі немає.

Для простих випадків радимо використовувати if..elseif..else.

Для складнішого зіставлення зі зразками, як у Scala, популярним є пакет Match.jl. Однак, як і більшість сторонніх пакетів, Match недоступний у раннері тестів Exercism.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Умовні конструкції

Практика заблокована

Розблокуйте ще 5 вправ, щоб практикувати концепцію Умовні конструкції