Условия
Булевая математика
Мы поговорили про операции над числами и строками, но ничего не сказали про 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 = 100
if 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 = 10
if x > 5
puts 'x more then 5'
else
puts 'x less or equals 5'
end
Его можно упростить до одной строки
x = 10
x > 5 ? puts 'x more then 5' : puts 'x less or equals 5'
Синтаксис достаточно легко запомнить: Boolean
? если true
: если false
Задание brothers_age
Создайте проект с тремя переменными типа int с именами vasya_age, victor_age и misha_age, обозначающими возрасты трёх братьев.
Пусть vasya_age = 32, victor_age = 14, а misha_age = 40
Создайте ещё три переменные типа int с именами min, middle и max.
Напишите код, который будет заполнять их, сравнивая возрасты между собой.
Выведите значения переменных min, middle и max в консоль. Код должен корректно работать, при изменении значений в изначальных переменных vasya_age, victor_age и misha_age.
Задание cooking
Есть следующий код:
milk_amount = 200 # ml
powder_amount = 5 # g
eggs_count = 3 # items
sugar_amount = 5 # g
oil_amount = 30 # ml
apple_count = 8 # items
#powder - 400 g, sugar - 10 g, milk - 1 l, oil - 30 ml
puts 'Pancakes'
#milk - 300 ml, powder - 5 g, eggs - 5
puts 'Omelette'
#apples - 3, milk - 100 ml, powder - 300 g, eggs - 4
puts 'Apple pie'
Напишите условные операторы if, проверьте в них количество ингредиентов для каждого рецепта.
Убедитесь, что печатаются названия блюд, которые можно приготовить из заданного количества ингредиентов.
Попробуйте изменить количество ингредиентов так, чтобы выдавались разные блюда.
Дополнительный материал
Last updated