Предполагая оценку короткого замыкания , единственный раз, когда это должно иметь большое значение, это если у вас есть вызов медленной функции в вашем цикле. Например, если у вас есть функция, которая запросила значение из вашей базы данных и вернула его, то это:
while(bContinue && QueryStatusFromDatabase==1){
} //while
будет намного быстрее, чем:
while(QueryStatusFromDatabase==1 && bContinue){
} //while
Даже если они логически идентичны.
Это потому, что первый из них может быть остановлен, как только простое логическое значение будет FALSE - запрос должен выполняться только тогда, когда логическое значение TRUE, но второе будет всегда выполнять запрос.
Если у вас нет необходимости выдавливать все возможные циклы ЦП из цикла, то эти крайние случаи, вероятно, являются единственными, на которые стоит потратить ваше время. Подумайте об этом так: для того, чтобы затратить время, потраченное на этот вопрос, вам понадобится несколько миллиардов итераций вашего цикла.
Хуже всего, когда у вас есть функция как условие, и у этой функции есть побочные эффекты, которые тайно ожидаются другим местом в коде. Поэтому, когда вы проводите небольшую оптимизацию, побочные эффекты случаются только в некоторое время времени, и ваш код ломается странным образом. Но это немного касательно. Короткий ответ на ваш вопрос: «Иногда, но обычно это не имеет значения».