Условия

Булевая математика

Мы поговорили про операции над числами и строками, но ничего не сказали про 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