Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

11.1. При проверке условия записано просто число, без операции сравнения, но QSP не выдаёт ошибку. Почему?

В: При проверке условия записано просто число, без операции сравнения, но QSP не выдаёт ошибку. Почему?

Пример:

if ygrek:
    
! код
end

О:

Дело в том, что как такового в QSP нет булевого типа данных. То есть операции сравнения возвращают не значения 'true' и 'false', а значения 1 (заменяет 'true') и 0 (заменяет 'false'). Это легко проверить:

(3>5) ! вернёт 0
(3<5) ! вернёт 1

Таким образом оператор if проверяет не булевое, а числовое значение. И для этого оператора есть два варианта:

  1. Если ему передаётся значение 0, значит условие не выполнено.
  2. Если ему передаётся не 0, значит условие выполнено.

Именно поэтому когда Вы передаёте оператору if просто числовое значение, он работает с ним правильно, как должен.

ygrek=6
if ygrek:
    "Условие верно"
end
if no ygrek:
    "Условие всё равно верно"
end

ygrek=(3>5)
if ygrek:
    "Условие верно"
else
    "Условие неверно"
end