Мы поговорили про операции над числами и строками, но ничего не сказали про Boolean. Вообще само название Boolean происходит от имени ученного George Boole и в математике есть отдельная наука изучающая комбинаторику между значением Boolean (Булевая математика)
Давайте посмотри как она работает:
true_var =true false_var =false true_and_false_var = true_var && false_var # = false. Оператор && называется комбинатором 'И'. Если левая часть И вторая = true, значит результат будет true. Если хотя бы одна из частей false, значит и результат false
true_or_false_var = true_var || false_var # = true. Оператор || называется комбинатором 'ИЛИ'. Если левая часть ИЛИ вторая = true, значит результат будет true. Если обе части false, значит результатом будет false
difficult_bool = (true_var && false_var) || false_var # = false. Скобки в данном случае используются как в математике. Сначала происходит вычисление в самых глубоких скобках, потом уже вычисление с результатом
Помимо булевой математики у нас есть специальные операторы, которые возвращают в качестве результата Boolean.
int_var =261 is_more_then_100 = int_var > 100 # = true. Оператор > проверяет, что левая часть больше правой. Если все так, то результатом будет true, если нет - false.
Подробнее про операторы можно почитать в дополнительных материалах. Читать внимательно, так как задание будет проверят знание этих операторов
if else
Основной сценарий использования у Boolean это условия if...elsif...else...end
int_var =90 another_var =100if int_var >50# Если int_var больше 50# То выполни код внутриputs"int_var is more then 50"# В данном примере нужно напечатать в консоль "It's more then 50"elsif int_var >30# Если условия выше не сработали, то проверить, что int_var больше 30# Если условие выполнится, то выполни код внутриputs"int_var isn't more then 50, but more then 30"elsif int_var >10# Если условия выше не сработали, то проверь, что int_var больше 10# Если условие выполнится, то выполни код внутриputs"int_var isn't more then 50 and 30 but more then 10" elsif another_var < 300 # Если условия выше не сработали, то проверь, что another_var меньше 300 (мы можем работать не только с одним значением)
# Если условие выполнится, то выполни код внутриputs"int_var isn't more then 50 and 30 and 10 but another_var less then 300"else# Если никакие из условий выше не сработали# то выполни код внутриputs"int_var isn't more then 50 and 30 and 10"end
Запомнить достаточно просто, если знать перевод: if - если, else - иначе, elsif = else + if - иначе если. Из примера должно быть видно, что условие if мы объявляем один раз, else тоже один раз, а вот elsif у нас может быть сколько угодно.
Тернарный оператор
Иногда, когда наше условие очень простое и короткое как это:
x =10if x >5puts'x more then 5'elseputs'x less or equals 5'end
Его можно упростить до одной строки
x =10x >5?puts'x more then 5':puts'x less or equals 5'
Синтаксис достаточно легко запомнить: Boolean ? если true : если false
Задание brothers_age
Создайте проект с тремя переменными типа int с именами vasya_age, victor_age и misha_age, обозначающими возрасты трёх братьев.
Создайте ещё три переменные типа int с именами min, middle и max.
Напишите код, который будет заполнять их, сравнивая возрасты между собой.
Выведите значения переменных min, middle и max в консоль. Код должен корректно работать, при изменении значений в изначальных переменных vasya_age, victor_age и misha_age.