Что быстрее: условная операция ?: или if/else

Рейтинг: 5Ответов: 2Опубликовано: 18.01.2011

В Java есть два типа работы с условием: это традиционная конструкция if/else и условная операция condition ? value1 : value2. Какой способ быстрее или они одинаковы?

Традиционный

int result;
if (condition) {
  result = 0;
} else {
  result = 1;
}

Условная операция

int result = (condition)? 0: 1;

Ответы

▲ 35Принят

Если заглянуть в дизассемблер у С++ для if и ? генерируется одинаковый код. В Java тоже самое, генерируется одинаковый код в *.class.

▲ 3

Эээм,

Смотря на чем пишите, если язык компилируемый, то разницы нет. Если же все это выполняется в реал тайме, то понятно, что ?: будет меньше занимать места => обработка займет меньше времени.