Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su
11.1. При проверке условия записано просто число, без операции сравнения, но QSP не выдаёт ошибку. Почему?
В: При проверке условия записано просто число, без операции сравнения, но QSP не выдаёт ошибку. Почему?
Пример:
if ygrek:
! код
end
! код
end
О:
Дело в том, что как такового в QSP нет булевого типа данных. То есть операции сравнения возвращают не значения 'true' и 'false', а значения 1 (заменяет 'true') и 0 (заменяет 'false'). Это легко проверить:
(3>5) & ! вернёт 0
(3<5) & ! вернёт 1
(3<5) & ! вернёт 1
Таким образом оператор if проверяет не булевое, а числовое значение. И для этого оператора есть два варианта:
- Если ему передаётся значение 0, значит условие не выполнено.
- Если ему передаётся не 0, значит условие выполнено.
Именно поэтому когда Вы передаёте оператору if просто числовое значение, он работает с ним правильно, как должен.
ygrek=6
if ygrek:
"Условие верно"
end
if no ygrek:
"Условие всё равно верно"
end
ygrek=(3>5)
if ygrek:
"Условие верно"
else
"Условие неверно"
end
if ygrek:
"Условие верно"
end
if no ygrek:
"Условие всё равно верно"
end
ygrek=(3>5)
if ygrek:
"Условие верно"
else
"Условие неверно"
end