несколько проверок в операторе if - PullRequest
3 голосов
/ 27 июля 2011

В Java есть более быстрый способ сделать это?

if (keyCode != 66 && keyCode != 8 && keyCode != 21 && keyCode != 22) {

}

keyCode - это int.

Ответы [ 2 ]

11 голосов
/ 27 июля 2011

Быстрее?Это слишком медленно для вас?Не играй в оптимизатор.Напишите читаемый код и оставьте микрооптимизации оптимизатору. Преждевременная оптимизация - корень всех золпоместите их в контейнер (например, в набор или массив) и find keyCode в нем.Если вы нашли это, то ваше состояние ложно.В противном случае это правда.

Согласно комментарию Дейва:

if(!MyCodesSet.Contains(keyCode)){
}
0 голосов
/ 27 июля 2011

Да, оператор switch преобразуется в прямые переходы. Однако возможно, что JIT все равно сделает это с вашим кодом, поэтому вы должны попробовать его, если switch на самом деле быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...