if x ~= 0 | x ~= 100
никогда не может быть ложным. Если x~=0
ложно, то x~=100
будет истиной. Один из двух компонентов всегда истинен, и, следовательно, комбинация ИЛИ всегда истинна.
Возможно, вы захотите использовать if x ~= 0 && x ~= 100
.
Обратите внимание на разницу между |
и ||
и между &
и &&
. Единственный оператор является поэлементным оператором и потенциально возвращает матрицу. Другой является истинным логическим оператором, который всегда возвращает простой true
или false
. В данном конкретном случае они идентичны, но полезно использовать правильный оператор в нужном месте.
Обратите также внимание, что следующий elseif
должен быть простым else
. Вы никогда не должны повторяться, это приводит только к труднопроходимым ошибкам.