Бесконечное зацикливания цикла, как исправить? - страница 6

 
Vladimir:

Мое удивление было вызвано фразой "все что находиться в скобках, выполняется с высоким приоритетом, а значит должно быть высчитано все, до последнего члена". Как ее следует понимать в случае короткой схемы вычисления логических выражений, когда "оценка выражения прекращается, как только результат всего выражения становится очевидным". Что здесь имелось в виду? Для меня это разные вещи. Или высчитывать все до последнего члена, или прекратить вычисления, как только результат стал очевиден...

я думаю, вам больше нечего сказать, поэтому вы ищете в словах подоплеку, хотя там все сказано точно, выдирать часть слов из контекста не имеет смысла. вы знали о чем идет речь и все равно настаивали на том что писать строку со всеми условиями в один оператор IF лучше, чем разбивать условия каждый по своему оператору IF.


с уважением.

 
Vladimir Zubov:

Должна прекратиться проверка как только условие не выполнилось. Поэтому условие которое часто меняется нужно ставить первым, тем самым повышая общее быстродействие.

конечно, например проверку меджика можно ставить первой, так как похожих меджиков может быть очень мало(если конечно вы не любитель одного счастливого номерка), потом проверку по символу и уж потом по типу ордера.

с уважением.
 
Vladimir Zubov:  Должна прекратиться проверка как только условие не выполнилось.

Кажется, чуть сложнее. Вычисление ведется до очевидности

Пусть вычисляется выражение с использованием логического И:  condition1 && condition2
Если выражение condition1 окажется равным false, то вычисление выражения condition2 проводиться уже не будет, так как результат false && true или false && false все равно будет равен false.      Если condition1 окажется равным true, то вычисление будет продолжено.

Пусть вычисляется выражение с использованием логического ИЛИ:  condition3 || condition4
Если выражение condition3 окажется равным true, то вычисление выражения condition4 проводиться уже не будет, так как результат true || false  или  true || true все равно будет равен true.     Если condition3 окажется равным false, то вычисление будет продолжено

 
STARIJ:

Кажется, чуть сложнее. Вычисление ведется до очевидности

Именно так! Вычисление продолжается, если следующая часть может изменить общий результат  с true на false  или  с false на true