Тема: AHK: Внятное пояснение скобок и return к ним
Я уже который раз вчитываюсь в справку, но не могу понять ни на примерах ни образно:
На какой#
Нужны { } в AHK и какую роль они играют
написано дословно "обеспечивает последовательное выполнение команд"
что относится к последовательности или самим командам нигде особо не поясняется
Т.е. если я напишу 6 строк кода без скобок они в случайном порядке выполнятся или что?
И зачем так много скобок?
Почему не используется else в случае применения скобок - её функция как-то кастрируется написанием скобок - в результате при написании else внутри - код выдаёт ошибку.
Если напишу
loop
проверять что-то 1
{
делать что-то ;Ну в случае с действиями мне понятно. Очередность их строго важна.
}
проверять что-то еще 2 ;проверка второго выполнится рандомно или также по порядку написания?
{
Делать что-то другое
}
проверять что-то еще 3 ;проверка 3-го выполнится рандомно или также по порядку написания?
{
Делать что-то 3-е
}
return ;вернёт код к началу loop
А если напишу
loop {
проверять что-то 1
{
делать что-то ;Ну в случае с действиями мне понятно. Очередность их строго важна.
return ; если написать здесь. Куда вернётся?
}
проверять что-то еще 2 ;проверка второго выполнится строго по порядку написания?
{
Делать что-то другое
return ; если написать здесь. Куда вернётся?
}
проверять что-то еще 3 ;проверка 3-го выполнится строго по порядку написания?
{
Делать что-то 3-е
return ; если написать здесь. Куда вернётся?
}
return ;Нужен тут?
}
return ;Или тут? Вобще не понятно с точки зрения логики
А если еще мы присвоим переменные в таком цикле
loop
a = 0 ;присваивать переменную чтобы она была видна во всём цикле здесь?
{
;или здесь?
проверять что-то 1
{
делать что-то ;Ну в случае с действиями мне понятно. Очередность их строго важна.
a = 0 ;а если присвоить переменную здесь? то через сколько скобок вниз или вверх она будет видна?
return ; если написать здесь. Куда вернётся?
}
проверять что-то еще 2 ;проверка второго выполнится строго по порядку написания?
a = 0 ;а если здесь? то будет ли она видна наверху? И в последовательности её увидит скрипт и откуда она будет видна еще?
{
Делать что-то другое
return ; если написать здесь. Куда вернётся?
}
проверять что-то еще 3 ;проверка 3-го выполнится строго по порядку написания?
a = 0 ;а если здесь?
{
Делать что-то 3-е
return ; если написать здесь. Куда вернётся?
}
a = 0 ;а если здесь?
KeyWait, % key ;Мне писали пример ожидания клавиш внизу цикла. Но с точки зрения логики я вобще не понимаю как можно ждать клавишу внутри, когда столько скобок выполняют проверку кода строго в последовательност инаписания строк.
return ;Нужен тут?
}
return ;Или тут? Вобще не понятно с точки зрения логики
endы вообщене используются, я уже даже боюсь заикаться про них. Непонятно чем они заменены.
Вобщем очено непонятная каша получается.
В целом вопрос о том, как грамотно разделить код на блоки подчиняющиеся единому управлению из одного места.