Access 2002

Логическое значение


Например, в С наш код может быть таким:

В этой строке «= =» означает «присвоить», а «=-» означает «сравнить». Таким образом, везде, где переменой присваивается логическое значение, зависящее от результата проверки некоторого условия, составной оператор If.Then. .Else можно заменить одним оператором присваивания.

Если такое логическое присваивание кажется вам сложным или трудночитаемым, можете его не использовать, поскольку выигрыш во времени оно дает относительно небольшой (в наших тестах этот вариант кода выполнился за 66% от времени выполнения условного оператора). Если же сокращенный оператор кажется вам более естественным и удобным, лучше всего его и использовать. (Просмотрите также полные тестовые процедуры Testl3a и Testl3b в модуле класса OptimizingTests.)

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

Однако тестирование показывает, что из этих трех вариантов кода первый является самым быстрым, а последний — наиболее медленным. А вот действительно лучшее решение:

Все просто: если переменная х содержит True, ей присваивается False; если она содержит False, ей присваивается True. Например, если вы хотите изменить значение свойства Enabled командной кнопки, достаточно написать так: cmdOK.Enabled – Not cmdDK.Enabled

В наших тестах оператор Not выполнялся вдвое быстрее эквивалентного ему оператора If. .Then. .Else. (Просмотрите также полные тестовые процедуры Testl4a и Testl4b в модуле класса OptimizingTests.)

Даже и не пытайтесь использовать оператор Not для изменения значений переменных других типов, отличных от Boolean.

Комментарии закрыты