Оптимизация условных выражений заключается

Обновлено: 21.11.2024

В условиях, казалось бы, все предельно просто: освоив написание такого кода однажды, в дальнейшем всегда его придерживаешься. Но даже самое простое можно улучшить. Попробуем улучшить написание условных выражений с помощью нескольких действенных рекомендаций:

Меняем if/else на if

В этом коде функция исходя из заданного условия возвращает разные результаты. Оператор return останавливает выполнение функции и возвращает из нее значение. То есть код после оператора return выполнен не будет. Поэтому переписываем его в таком виде:

Во второй условной ветке необходимости нет, ведь если первое условие оказывается true , то возвращается значение even и выполнение функции останавливается.

Выносим большую часть кода за пределы условной ветки

А здесь код выполняется только при соблюдении условия. Но в этом подходе есть одна проблема: трудно отслеживать выполнение функции, особенно если код, заключенный в if , намного длиннее. Более четким этот подход делает следующее:

До этого весь код помещался в условную ветку: там он будет выполняться, если мышь не выйдет за допустимые границы. Теперь же мы проверяем, является ли положение мыши недопустимым. Если оно недопустимо, выполнение функции останавливаем. В противном случае продолжаем его.

Когда условий слишком много, задействуем switch

Когда условий сразу несколько (как в этом примере), использование if/else — не лучший вариант. Так как здесь проверяется значение одной и той же переменной, пример лучше переписать в более четкой форме с помощью switch :

Когда код в условии состоит из одной строчки, используем словарь

Когда нужно только выполнить функцию при соблюдении определенного условия (как в предыдущем коде), у нас есть возможность написать код еще лучше: вместо оператора switch задействуем словарь.

Благодаря словарю получаем самый четкий и лаконичный код. Здесь в объекте сохраняется ссылка на функцию, после чего с помощью значения key вызывается требуемая функция , но только если для этого ключа есть значение. dic['a'] вернет moveLeft , dic['w'] вернет moveTop и так далее. А если значения для key нет — будет возвращаться undefined . Поэтому нужно проверить, есть ли значение для ключа, прежде чем пытаться вызвать функцию. Проверяем с помощью dicОптимизация условных выражений заключается && dicОптимизация условных выражений заключается(); . Это то же самое, что и:

Заключение

Даже самое простое можно улучшить, в том числе условные выражения. Главное — всегда искать новые и лучшие решения старых проблем, и иногда такие решения находятся.

Читайте также: