Оценивает ли Objective-C каждое утверждение в блоке if... else if...
или оценивает каждое из них по мере их поступления, а затем пропускает оставшиеся оценки, если было найдено истинное условие?
Это болеепрагматический вопрос, связанный с производительностью, чем с чем-либо еще.
И да, я знаю, что содержимое самого блока if не выполняется, но я имею в виду фактические операторы, которые оцениваются.
Пример
if ([condition A] == test) {
// Do something
} else if ([condition B] == test) {
// Do something
} else if ([condition C] == test) {
// Do something
} else {
// Do something because all other tests failed
}
Итак ... если условие A истинно, условия B и C все равно оцениваются?
Если они это делают, то выполняет ли оператор switch то же самое?или коммутатор только проверяет каждое условие по мере его поступления, а затем выходит из оценки из-за разрыва?
Насколько я понимаю, в блоке if... else if...
оценивается каждое условие и, следовательно, используется переключательили вложенный if (тьфу - не смейтесь там мысли) может быть быстрее при больших операциях оценки на большом количестве данных (сотни тысяч элементов будутпроверил потенциально сотню утверждений).
Просто любопытно: -)