Теперь, прежде чем Вы все вскакиваете на меня и говорите, что "Вы по соответствующему о производительности", позволила она настоящим стоять, что я спрашиваю это больше из любопытства, чем скорее фанатичная природа. Это сказало...
Мне любопытно, если существует различие в производительности между использованием && ("и") оператором и вложено если операторы. Кроме того, есть ли фактическое различие в обработке? Т.е. && всегда обрабатывает оба оператора, или он остановится первый, если первый перестанет работать? Как это отличалось бы, чем вложенный если операторы?
Примеры, чтобы быть ясным:
A) && ("и") оператор
if(a == b && c == d) { ...perform some code fashizzle... }
по сравнению с B), вложенным, если операторы
if(a == b) {
if(c == d) { ...perform some code fashizzle... }
}
Разница в производительности незначительна. Оператор &&
не будет проверять правое выражение, если левое выражение оценивает false
. Тем не менее, оператор и
будет проверять оба в любом случае, возможно, это вызвано вашим недоразумением.
В этом конкретном примере я бы просто выбрал тот, который использовал &&
, так как он лучше читается.
Подобно вложенному if
s, &&
ленивый.
Выражение a && b
будет оценивать только b
, если a
истинно.
Таким образом, оба корпуса должны быть полностью идентичны как по функциональности, так и по производительности.
Если вас беспокоит производительность, убедитесь, что a == b
с большей вероятностью потерпит неудачу, чем c == d
. Таким образом, оператор if
выйдет из строя раньше времени.