Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Почему не срабатывает условие !=

Антошка Профи (579), на голосовании 2 месяца назад
К примеру код:
 for ($i=0; $i < 10; $i++) {
if ($i != 3) echo 'Цикл под номером '.$i.' неравен числу 3
';
else echo 'Число '.$i.' равно 3
';
}
?>
Работает без проблем. Меняю

 for ($i=0; $i < 10; $i++) { 
if ($i != 5) echo 'Цикл под номером '.$i.' неравен числу 5
';
else echo 'Число '.$i.' равно 5
';
}
?>
Тоже все гуд...

а теперь я хочу совместить эти условия через ИЛИ так как там же или он 3 не равен или 5..
И все не работает....

 for ($i=0; $i < 10; $i++) {  
if (($i != 3) or ($i != 5)) echo 'Цикл под номером '.$i.' неравен числу 3 или 5
';
else echo 'Число '.$i.' равно 3 или 5
';
}
?>
Голосование за лучший ответ
Айран Просветленный (25444) 3 месяца назад
у вас две ветки условия c OR противоречат своим описаниям (или тому как я это понял)
неравен числу 3 или 5
равно 3 или 5
может AND лучше подойдет под ваши хотелки
Андрей Панарин Искусственный Интеллект (198981) 3 месяца назад
 ($i != 3) or ($i != 5) 
Чтобы условие было соблюдено, достаточно соблюсти любое из двух неравенств.

Давайте подумаем, какое число не соответствует этому условию.
3? Не равно пяти. Соответствует.
5? Не равно трем. Соответствует.
Любое другое? Не равно трем. Соответствует.

Попробуйте так:
 ($i != 3) and ($i != 5) 
В этом случае для чисел 3 и 5 одно из двух условий будет нарушено, а потому логическое И (and) даст результат "ложь", и условие не будет соблюдено.
Похожие вопросы