Поделиться через


Оператор And (Visual Basic)

Выполняет логическое умножение двух выражений типа Boolean или побитовое логическое умножение двух числовых выражений.

result = expression1 And expression2

Части

  • result
    Обязательный. Произвольное выражение типа Boolean или числового типа. При сравнении логических выражений result — логическое умножение величин типа Boolean. При поразрядных операциях result — числовое значение, представляющее побитовое логическое умножение двух числовых битовых шаблонов.

  • expression1
    Обязательный. Произвольное выражение типа Boolean или числового типа.

  • expression2
    Обязательный. Произвольное выражение типа Boolean или числового типа.

Заметки

Для логического сравнения result — True только в том случае, если оба выражения expression1 и expression2 равны True. В следующей таблице показан порядок определения результата result.

Если expression1 имеет значение

И выражение expression2 имеет значение

значение result будет следующим:

True

True

True

True

False

False

False

True

False

False

False

False

Примечание

При логическом сравнении оператор And всегда вычисляет оба выражения, которые могут включать вызовы процедур.Оператор AndAlso (Visual Basic) реализует сокращенную обработку, это означает, что если expression1 имеет значение False, то expression2 не вычисляется.

При использовании оператора And для числовых значений выполняется побитовое сравнение одинаково расположенных битов в двух числовых выражениях и устанавливается соответствующий бит в result согласно следующей таблице:

Если бит в expression1 имеет значение

И бит в expression2 имеет значение

Бит в result имеет значение

1

1

1

1

0

0

0

1

0

0

0

0

Примечание

Поскольку логические и побитовые операторы имеют более низкий приоритет по сравнению с другими арифметическими операторами и операторами отношения, побитовые операции следует заключать в круглые скобки, чтобы гарантировать правильное выполнение.

Типы данных

Если операнды состоят из одного выражения типа Boolean и одного числового выражения, Visual Basic преобразует выражение типа Boolean в числовое значение (–1 для True и 0 для False) и выполняет битовую операцию.

Для логического сравнения тип данных результата — Boolean. Тип данных результата для побитового сравнения является числовым типом, соответствующим типам данных expression1 и expression2. См. таблицу "Относительное и побитовое сравнение" в разделе Типы данных результатов оператора (Visual Basic).

Примечание

Оператор And может быть перегружен. Это означает, что класс или структура может переопределить его поведение, если операнд имеет тип соответствующего класса или структуры.Если в коде используется этот оператор для такого класса или структуры, убедитесь, что его переопределенное поведение вам понятно.Дополнительные сведения см. в разделе Процедуры операторов (Visual Basic).

Пример

В данном примере оператор And используется для выполнения логического умножения двух выражений. Результатом является значение типа Boolean, которое указывает, имеют ли оба выражения значение True.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c

В предыдущем примере формируются результаты True и False соответственно.

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

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a And b)
secondPattern = (a And c)
thirdPattern = (b And c)

В предыдущем примере получаются результаты 8, 2 и 0 соответственно.

См. также

Ссылки

Логические (побитовые) операторы (Visual Basic)

Порядок применения операторов в Visual Basic

Список операторов, сгруппированных по функциональному назначению (Visual Basic)

Оператор AndAlso (Visual Basic)

Основные понятия

Логические и побитовые операторы в Visual Basic