Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Skomopox on June 30, 2014, 08:18:29 AM
-
Привет Джони! Не идёт сравнение и и операторы в команде if в 4.10. Вот пример:
$c=9
$s=14
if($c<$s|$c<10)
print("OK")
else
print("NOK")
end_if
halt
Всегда пишет NOK. Т.е. никак не находит. Ни один оператор не работает. Проверял в 4.7 всё идёт, в 4.9 тоже. В 4.10 не работает. Джонииииии.... исправь, пожалуйста, и можно ли новую версию выложить сразу с этим исправлением???! Спасибо.
-
$c=9
$s=14
if((int($c)<int($s))|(int($c)<10))
print("OK")
else
print("NOK")
end_if
halt
а вот так ? =)
ps. проверил отредактировал
сложные выражения нужно тоже в скобки заключать
-
INT нужен для принудительного преобразования строк в числа, например после чтения из файла.
В данном случае это не нужно
$c=9
$s=14
if(($c<$s)|($c<10))
print("OK")
else
print("NOK")
end_if
halt
-
Сейчас дошло про скобки. А то не сразу понятно. Просто в предыдущих версиях они не нужны были, какие бы сложные выражения не были, ну по крайне мере в моём примере точно. Я проверил перед тем, как написать, я писал. Не знал, что в 4.10 добивалось необходимость этих скобок. Спасибо, ребята, большое! :)
-
Всегда нужны были скобки. Если не с OR, то с AND... Да и вообще лучше ставить т.к. приоритет логических операций не озвучен. Может он и совпадает с Delphi, а может и нет. Да и кто из не программистов знает как там оно классически.
Но понравилось сразу: "исправь, пожалуйста" и "новую версию" сразу ;D
Тут новоприбывшие весь ВКонтакт и форум оборвали "НЕ ПОВТОРЯЕТ, ПОМОГИТЕ!" Хотя ответ через каждые 3 поста, и то обновления нет.
В 4.10 баг синус/косинус так до конца и не исчез. Пробивается сквозь костыль вставленный после 4.9.
LOGWRITE ("COS/SIN ", 1*COS(90), "/", 1*SIN(180))
// вариант лечения через промежуточные переменные
$COS = COS(90)
$SIN = SIN(180)
LOGWRITE ("Обход COS/SIN ", 1*$COS, "/", 1*$SIN)
HALT
На 1 умножаю для примера. Когда столкнулся с умножением на переменную еле нашёл.