Каков порядок приоритета операторов в Visual Basic 6.0?

StackOverflow https://stackoverflow.com/questions/55206

  •  09-06-2019
  •  | 
  •  

Вопрос

Каков порядок приоритета операторов в Visual Basic 6.0 (VB6)?

В частности, для логических операторов.

Это было полезно?

Решение

Порядок приоритета арифметических операций

  1. ^
  2. - (унарное отрицание)
  3. *, /
  4. \
  5. Mod
  6. +, - (двоичное сложение/вычитание)
  7. &

Порядок приоритета операций сравнения

  1. =
  2. <>
  3. <
  4. >
  5. <=
  6. >=
  7. Like, Is

Порядок приоритета логических операций

  1. Not
  2. And
  3. Or
  4. Xor
  5. Eqv
  6. Imp

Источник: Sams Teach Yourself Visual Basic 6 за 24 часа — Приложение A:Приоритет оператора

Другие советы

Это зависит от того, находитесь ли вы в отладчике или нет. Действительно. Ну, типа того.

Круглые скобки, конечно, на первом месте.Затем арифматические (+,-,*,/ и т.д.).Затем сравнения (>, <, = и т. д.).Затем логические операторы.Хитрость в том, что порядок выполнения внутри данного уровня приоритета не определен.Учитывая следующее выражение:

If A < B And B < C Then

вам гарантировано < Оба оператора неравенства будут оцениваться до логического And сравнение.Но нет гарантии, какое сравнение неравенств будет выполнено первым.

IIRC, отладчик выполняется слева направо, а скомпилированное приложение выполняется справа налево. Я мог бы поставить их задом наперед (это было давно), но важно то, что они другие.Фактический приоритет не изменится, но порядок выполнения может измениться.

Используйте круглые скобки


РЕДАКТИРОВАТЬ:Это мой совет для нового кода!Но Оскар читает чужой код, так что надо как-то это выяснить.Я предлагаю тему руководства VB6. Приоритет оператора.К сожалению, этой темы нет в Онлайн-руководство MSDN по VB6, поэтому я вставлю сюда информацию о логическом операторе.Если вы установили справку VB6 (библиотеку MSDN), она будет установлена ​​на вашем компьютере.

Логические операторы оцениваются в следующем порядке старшинства:

Not   
And   
Or   
Xor   
Eqv   
Imp   

В этой теме также объясняется приоритет операторов сравнения и арифметических операций.

Я бы посоветовал, как только вы выясните приоритет, поставить круглые скобки, если только нет веской причины не редактировать код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top