Автокликер Clickermann :: Форум
Основной раздел => Предложения => Topic started by: Космич on June 06, 2019, 06:24:46 PM
-
Моё предложение состоит в том, что бы избавиться от мучительной пирамидальной вложенности условных операторов. Всего 2 варианта, оба делают код визуально компактным за счёт выравнивания условий в виде ровного вертикального списка.
З.Ы. Johnny, надеюсь ты не пропустишь эту тему и откликнешься.
ELSE_IF
IF ($var = 0)
PRINT("var равна 0")
ELSE_IF ( ($var => 0) and ($var <= 10) )
PRINT("var между 0 и 10")
ELSE_IF ($str = "Hello World!")
PRINT("str равна Hello World")
ELSE
PRINT("Все условия ложны")
END_IF
SELECT
https://autoit-script.ru/autoit3_docs/keywords/Select.htm
SELECT
CASE ($var = 0)
PRINT("var равна 0")
CASE ( ($var => 0) and ($var <= 10) )
PRINT("var между 0 и 10")
CASE ($str = "Hello World!")
PRINT("str равна Hello World")
DEFAULT
PRINT("Все условия ложны")
END_SELECT
-
SELECT
https://autoit-script.ru/autoit3_docs/keywords/Select.htm
SELECT
CASE ($var = 0)
PRINT("var равна 0")
CASE ( ($var => 0) and ($var <= 10) )
PRINT("var между 0 и 10")
CASE ($str = "Hello World!")
PRINT("str равна Hello World")
DEFAULT
PRINT("Все условия ложны")
END_SELECT
Прикольно ::) Такая конструкция может частенько помогать.
-
Эту конструкцию я предлагал очень давно, ещё до введения местных кейсов, но реализовали только обычный свитч.
-
Отлично. К тому же кейсы в свитче проверяются не все, в отличие от пирамиды ифов, а только до нахождения первого подходящего. Остальные инорятся. Поэтому пирамиду свитча надо строить с учетом этого. Вот два примера:
Здесь, если $a=11 выполнится CASE(>9)
SWITCH($a)
CASE(>12)
.....
CASE(>9)
.....
CASE(>6)
.....
CASE(>3)
.....
END_SWITCH
Здесь, если $a=11 выполнится CASE(>3)
SWITCH($a)
CASE(>3)
.....
CASE(>6)
.....
CASE(>9)
.....
CASE(>12)
.....
END_SWITCH
-
Отлично. К тому же кейсы в свитче проверяются не все, в отличие от пирамиды ифов, а только до нахождения первого подходящего. Остальные инорятся. Поэтому пирамиду свитча надо строить с учетом этого.
свитч такая же пирамида из условий :D