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

Основной раздел => Общие вопросы => Topic started by: Skomopox on June 30, 2014, 08:18:29 AM

Title: Не идёт сравнение и и операторы в команде if в 4.10
Post by: Skomopox on June 30, 2014, 08:18:29 AM
Привет Джони! Не идёт сравнение и и операторы в команде if в 4.10. Вот пример:
Code: (clickermann) [Select]
$c=9
$s=14

if($c<$s|$c<10)
print("OK")
else
print("NOK")
end_if

halt

Всегда пишет NOK. Т.е. никак не находит. Ни один оператор не работает. Проверял в 4.7 всё идёт, в 4.9 тоже. В 4.10 не работает. Джонииииии.... исправь, пожалуйста, и можно ли новую версию выложить сразу с этим исправлением???! Спасибо.
Title: Re: Не идёт сравнение и и операторы в команде if в 4.10
Post by: aden on June 30, 2014, 08:26:02 AM
Code: (clickermann) [Select]
$c=9
$s=14
 
if((int($c)<int($s))|(int($c)<10))
print("OK")
else
print("NOK")
end_if
 
halt

а вот так ? =)

ps.  проверил отредактировал
сложные выражения нужно тоже в скобки заключать
Title: Re: Не идёт сравнение и и операторы в команде if в 4.10
Post by: Oraven on June 30, 2014, 08:48:22 AM
INT нужен для принудительного преобразования строк в числа, например после чтения из файла.

В данном случае это не нужно
Code: (clickermann) [Select]
$c=9
$s=14

if(($c<$s)|($c<10))
   print("OK")
else
   print("NOK")
end_if

halt
Title: Re: Не идёт сравнение и и операторы в команде if в 4.10
Post by: Skomopox on June 30, 2014, 09:52:32 AM
Сейчас дошло про скобки. А то не сразу понятно. Просто в предыдущих версиях они не нужны были, какие бы сложные выражения не были, ну по крайне мере в моём примере точно. Я проверил перед тем, как написать, я писал. Не знал, что в 4.10 добивалось необходимость этих скобок. Спасибо, ребята, большое! :)
Title: Re: Не идёт сравнение и и операторы в команде if в 4.10
Post by: Vint on June 30, 2014, 10:56:15 AM
Всегда нужны были скобки. Если не с OR, то с AND... Да и вообще лучше ставить т.к. приоритет логических операций не озвучен. Может он и совпадает с Delphi, а может и нет. Да и кто из не программистов знает как там оно классически.

Но понравилось сразу: "исправь, пожалуйста" и "новую версию" сразу  ;D
Тут новоприбывшие весь ВКонтакт и форум оборвали "НЕ ПОВТОРЯЕТ, ПОМОГИТЕ!" Хотя ответ через каждые 3 поста, и то обновления нет.

В 4.10  баг синус/косинус так до конца и не исчез. Пробивается сквозь костыль вставленный после 4.9.
Code: (clickermann) [Select]
LOGWRITE ("COS/SIN ", 1*COS(90), "/", 1*SIN(180))

// вариант лечения через промежуточные переменные
$COS = COS(90)
$SIN = SIN(180)
LOGWRITE ("Обход COS/SIN ", 1*$COS, "/", 1*$SIN)

HALT

На 1 умножаю для примера. Когда столкнулся с умножением на переменную еле нашёл.