Что нового

Как прописать последовательность операторов"и " и "или" ?

agikon

Знающий
Сообщения
789
Репутация
16
вобщем как бы условие не сложное,

вот тоже самое как и вот это
Код:
If  IsArray(PixelSearch(5, 155, 30, 160, 0xfffbce) ) And  IsArray(PixelSearch(5, 300, 30, 305, 0xffffff)) Then
    MsgBox(0,'','')
EndIf


только что если таких удвоенных диапазонов несколько.
то есть чтото наподобии вот этого , только я не знаю правильно ли я вот это пишу
Код:
If  IsArray(PixelSearch(5, 155, 30, 160, 0xfffbce) ) And  IsArray(PixelSearch(5, 300, 30, 305, 0xffffff)) or IsArray(PixelSearch(10, 150, 40, 170, 0xfffbce) ) And  IsArray(PixelSearch(10, 320, 40, 320, 0xffffff)) or IsArray(PixelSearch(30, 170, 50, 180, 0xfffbce) ) And  IsArray(PixelSearch(30, 350, 50, 330, 0xffffff)) Then
    MsgBox(0,'','')
EndIf


то есть видите там если первая пара диапазонов не соответствуют условию, то должна проверятся следующая пара диапазонов и т.д.
Всего 3 пары дмапазонов.
Воти я это правильно записал с оператором "or"?
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Так правильно условия выполнятся не будут, надо каждое условие взять в скобки.

1 пример, выполнятся не будет:
Код:
$i1 = 1
$i2 = 0

$i3 = 1
$i4 = 1

$i5 = 1
$i6 = 0

If $i1 And $i2 Or $i3 And $i4 Or $i5 And $i6 Then Beep(1111,111)

2 пример, условия в скобках выполняются правильно:
Код:
$i1 = 1
$i2 = 0

$i3 = 1
$i4 = 1

$i5 = 1
$i6 = 0

If ($i1 And $i2) Or ($i3 And $i4) Or ($i5 And $i6) Then Beep(1111,111)


Код:
If  (IsArray(PixelSearch(5, 155, 30, 160, 0xfffbce) ) And  IsArray(PixelSearch(5, 300, 30, 305, 0xffffff))) or (IsArray(PixelSearch(10, 150, 40, 170, 0xfffbce) ) And  IsArray(PixelSearch(10, 320, 40, 320, 0xffffff))) or (IsArray(PixelSearch(30, 170, 50, 180, 0xfffbce) ) And  IsArray(PixelSearch(30, 350, 50, 330, 0xffffff))) Then
    MsgBox(0,'','')
EndIf
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
rusreg79
спасибо вам большое, действительно поставил скобки и сразу всё заработало.
 
Верх