В калькуляторе можно прописывать условия с оператором IF:

if (score > 90) {
    grade = 'отлично'
    bonus = 500
} else if (score > 70) {
    grade = 'хорошо'
} else {
    grade = 'старайся лучше'
}

  1. Условия можно прописывать в одну строку: if (paid == 1) { status = 'ok' } else { status = 'wait' }
  2. Внутри веток — сколько угодно строк, вложенные условия и циклы.
  3. Выполняется только та ветка, чьё условие сработало. Остальные не вычисляются вообще: несуществующая переменная или ошибка в «чужой» строке больше ничего не ломает.
  4. Подстановка #{переменных} тоже происходит только в активной ветке.

Метод if(условие, если_да, если_нет) работает как раньше, но теперь вычисляется только нужная ветка: status = if(paid == 1, 'Оплачено', 'Ждём оплату: #{payment_url}')

Если paid == 1, ветка с #{payment_url} даже не подставляется — переменной может не существовать.