Страницы

Поиск по вопросам

среда, 11 декабря 2019 г.

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

#java


В Java есть два типа работы с условием: это традиционная конструкция if/else и условная
операция condition ? value1 : value2. Какой способ быстрее или они одинаковы?
Традиционный
int result;
if (condition) {
  result = 0;
} else {
  result = 1;
}

Условная операция
int result = (condition)? 0: 1;
    


Ответы

Ответ 1



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

Ответ 2



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

Ответ 3



На мой взгляд, разницы в конечном итоге не будет. Как читается лучше, так и пиши.

Ответ 4



Помимо этого есть еще и различные соглашение. В частности - "Человек пишет для человека", а машина сама скомпилирует понятней для нее. Есть компиляторы, есть сборщики и т.п. Поэтому пишите так как код будет более читабельный!

Комментариев нет:

Отправить комментарий