На этом уроке мы рассмотрим операторы условного ветвления if/else и switch
Подстатья
18 155
24
ScorpioT1000, ок. Плашка лишняя, получается)
38
Здесь же стоит упомянуть об ещё одной ОСОБЕННОСТИ - оптимизаторе выражений.
Это не особенность, так работают почти все ЯП
24
nazarpunk, не понял. Что за 0(1) и 0(n) ?
И компиляции, в том виде, к которому ты привык, у нас нет, бтв.
30
Кстати, код swittch разруливается на этапе компиляции и соответсвтвенно выполнится за O(1) вместо O(n) как в случае elseif.
5
побороть ограничение на И + ИЛИ
Ага, но через арифметику - это шуточный вариант. В Реконе и Far Horizons используют:
bool Con(bool a, bool b) {return a && b;} //КОНЪЮНКЦИЯ
bool Dis(bool a, bool b) {return a || b;} //ДИЗЪЮНКЦИЯ
То есть некорректное if( (a && b) || c) можно превратить в работающее if( Con(a, b) || c)
Злоупотреблять Con/Dis не стоит, код может стать неудобочитаемым, но в иных случаях всё понятно, можно не плодить лишние предваряющие bool'ы.
Также важно помнить про оптимизацию (сначала базовые чеки релевантности, потом большие функции), о ней в гайде ты написал, и, например, что проверка значений атрибута обычно идёт в связке с проверкой его наличия (если только заведомо не известно, что он есть).
24
nazarpunk, да.
Кстати, сложениями и умножениями можно закостылитьпобороть ограничение на И + ИЛИ
if(((a)*(b) + с) - (a)*(b)*(c))
где операция И - это a x b; операция ИЛИ - это a+b-(a x b)
30
использование логических И и ИЛИ в одном выражении вызывает ошибку
Я надеюсь сложение и умножение разрешено в одном выражении?
В ходе этого урока мы рассмотрим реализацию так называемых объектов, которые служат аналогом объектов класса в скриптовой части игры.
Подстатья
5 127
24
Вышла новая версия! Прокрутить к ресурсу
  • Описана проблема при обращении к атрибуту
Спасибо камраду Rosarak