Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: oleg518 on April 19, 2018, 03:27:53 PM

Title: Зацикливание внутри while при открытом IF
Post by: oleg518 on April 19, 2018, 03:27:53 PM
Всем привет, заметил то ли баг, то ли фичу:

$i=1
WHILE ($i < 2)
 IF (1=1)
 $i=i+1
END_CYC

будет выполняться бесконечно, хоть $i уже давно >2
Началось с того, что забыл дописать END_IF , и долго искал причину зацикливания. Если бы в таких случаях выскакивала ошибка "несоответствие количества операторов открытия и закрытия условий", то сразу бы понял.
Title: Re: Зацикливание внутри while при открытом IF
Post by: Oraven on April 19, 2018, 04:00:23 PM
В "ошибки" пишут ошибки кликера а не пользователя...
END_IF нет, и доллара в имени переменной тоже.

Верный код
Code: (clickermann) [Select]
$i=1
WHILE ($i < 2)
   IF (1=1)
      $i=$i+1
   END_IF
END_CYC
Title: Re: Зацикливание внутри while при открытом IF
Post by: Oraven on April 19, 2018, 04:03:13 PM
"несоответствие количества операторов открытия и закрытия условий", то сразу бы понял.

В редакторе есть волшебная палочка позволяющая автоматически расставлять отступы.
Если конец скрипта завис в воздухе или условия не выдвигаются ровными пирамидками, то значит где то либо нет окончания, либо лишние окончания.
Title: Re: Зацикливание внутри while при открытом IF
Post by: oleg518 on April 19, 2018, 04:19:42 PM
Извиняюсь, что не в тот раздел.
Просто как предложение: ввести выскакивание ошибки "отсутствие END_IF" ДО выполнения макроса.
Про палочку не знал, спасибо, удобно.