Author Topic: Зацикливание внутри while при открытом IF  (Read 1114 times)

0 Members and 1 Guest are viewing this topic.

oleg518

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Всем привет, заметил то ли баг, то ли фичу:

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

будет выполняться бесконечно, хоть $i уже давно >2
Началось с того, что забыл дописать END_IF , и долго искал причину зацикливания. Если бы в таких случаях выскакивала ошибка "несоответствие количества операторов открытия и закрытия условий", то сразу бы понял.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
В "ошибки" пишут ошибки кликера а не пользователя...
END_IF нет, и доллара в имени переменной тоже.

Верный код
Code: (clickermann) [Select]
$i=1
WHILE ($i < 2)
   IF (1=1)
      $i=$i+1
   END_IF
END_CYC

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
"несоответствие количества операторов открытия и закрытия условий", то сразу бы понял.

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

oleg518

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Извиняюсь, что не в тот раздел.
Просто как предложение: ввести выскакивание ошибки "отсутствие END_IF" ДО выполнения макроса.
Про палочку не знал, спасибо, удобно.