Сайт AZJIO
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Скрипты для LiveCD [0]
Скрипты для WindowsXP [8]
Примеры скриптов [15]
Функции [5]
Поиск
Главная » Статьи » Скрипты AutoIt3 » Примеры скриптов

If-Else-EndIf

Как правильно создать условие If ... Then



Эти примеры покажут как правильно создавать условия, повышая быстродействие и компактность записи. Быстродействие можно заметить в циклах при повторении операций несколько тысяч раз. Следует учитывать, что условие заданное выражением между операторами If и Then может иметь только два логических состояния Да=1=True или Нет=0=False. Значение 0 или пустая строка "" интерпретируются как Нет=0=False, все остальные положительные или отрицательные числа или не пустая строка интерпретируются как Да=1=True. Приоритет операторов в выражении смотрите в разделе "Операторы"


Избавление от вложенности условий

If $k = 8 Then
    If $z = 5 Then
        Exit
    EndIf
EndIf


; Заменить на одно условие
If $k = 8 And $z = 5 Then
    Exit
EndIf


Последовательное условие с одинаковым результатом

If $k = 8 Then
    Exit
EndIf
If
$z = 5 Then
    Exit
EndIf


; Заменить на одно условие
If $k = 8 Or $z = 5 Then
    Exit
EndIf


Излишнее приравнивание. Вычисляется верность условия 1=1 (верно, и результат 1) или 0=1 (не верно, и результат 0), но возврат успешности функции FileExists уже является результатом верности.

If FileExists($path) = 1 Then Exit
; Заменить на
If FileExists($path) Then Exit


Аналогично предыдущему. Условие заданное выражением между операторами If и Then является одним из двух значения "Да" или "Нет", при этом число 0 приравнивается к Нет=0=False, все остальные значения приравниваются к Да=1=True

If @error<>0 Then Exit
; Заменить на
If @error Then Exit


Аналогично предыдущему. Пустая строка "" приравнивается к Нет=0=False, "не пустая строка" приравнивается к Да=1=True

If $sString <> '' Then Exit
; Заменить на
If $sString Then Exit


Сравнение одного значения с несколькими значениями. Вариант с оператором Switch работает быстрее.

If $k = 3 Or $k = 8 Or $k = 12 Or $k = 43 Or $k = 67 Then Exit

; Заменить на
Switch $k
    Case 3, 8, 12, 43, 67
        Exit
EndSwitch


Инвертирование

If FileExists($path) = 0 Then Exit
; Заменить на
If Not FileExists($path) Then Exit


Инвертирование с перестановкой блоков

If Not FileExists($sPath) Then
    Exit
Else

    FileDelete($sPath)
EndIf

; Заменить на
If FileExists($sPath) Then
    FileDelete($sPath)
Else
    Exit
EndIf


Примеры аналогов

If $k <> 12 Then
If
$k - 12 Then


Примеры аналогов

If $a <> 3 And $b <> 5 And $c <> 7 Then
If Not
($a = 3 Or $b = 5 Or $c = 7) Then


Диапазоны

If $k >= 2 And $k <= 8 Then
    $k = 3
EndIf

; Аналогично
Switch $k
    Case 2 To 8
        $k = 3
EndSwitch


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

Do
    If $Trg Then
        ; ... много кода
        $cg = ClipGet()
        If $cg = 'Завершить' Then ExitLoop
        ; ... много кода
        Exit
    EndIf
Until
1

Категория: Примеры скриптов | Добавил: AZJIO (23.05.2011)
Просмотров: 3555 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вход
Друзья сайта
  • Справки AZJIO
  • USBTOR
  • PureBasic (Ru)
  • PureBasic (En)
  • AutoIT3 - Ru.Board
  • autoit-script.ru
  • autoitscript.com
  • WinPE - Ru.Board
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    ЮMoney

    Мой кошелёк

    ЮMoney: 4100117604217624


    AZJIO © 2024