Логика в выражении IF - PullRequest
       3

Логика в выражении IF

0 голосов
/ 20 января 2011

Может кто-нибудь сказать мне, что будет делать следующая логика?

if ((intOne and intTwo) = intThree)

У меня такое чувство, что он проверяет, что intOne или intTwo соответствует intThree, но я хотел бы знать наверняка.К сожалению, Google, похоже, не имеет особой поддержки, когда дело доходит до asp classic.

Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 20 января 2011

MSDN довольно специфичен:

Оператор И также выполняет побитовое сравнение идентично позиционированных битов в двух числовых выражениях и устанавливает соответствующий битв результате в соответствии со следующей таблицей:
... (следует таблица истинности для AND)

Таким образом, выражение поразрядно-AND для первых двух целых чисел, а затем сравниваетрезультат до третьего целого.

Вот та же оценка в C, для сравнения.

if( (intOne & intTwo) == intThree ) ...
1 голос
/ 20 января 2011

Мой VBScript немного ржавый, но я предполагаю, что секция (intOne and intTwo) оценивается как true.Я думаю, что это только проверка, существуют ли переменные.

Если вы хотите получить либо, либо, это, вероятно, будет выглядеть примерно так:

If intOne = intThree OR intTwo = intThree Then
  ...
End If

Если оба должны быть равны intThree, то вы бы сделали

If intOne = intThree AND intTwo = intThree Then
  ...
End If
1 голос
/ 20 января 2011

Насколько я знаю ... оператор 'and' в vbscript является логическим оператором .., что означает, что intOne и intTwo должны быть выражениями или значениями, которые приводят к логическому.

Неправильный синтаксис, я думаю ...

0 голосов
/ 20 января 2011

Я не думаю, что синтаксис правильный, но логика говорит, что если ОБА IntOne и IntTwo равны intThree тогда ...

if intOne = intThree and intTwo = intThree
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...