Потому что так поставлено условие.
В таком наборе, чтобы условие стало ложным, переменная должна быть одновременно равна всем перечисленным 0, 2, 5 и 8. Но так не бывает.
Потому что так поставлено условие.
В таком наборе, чтобы условие стало ложным, переменная должна быть одновременно равна всем перечисленным 0, 2, 5 и 8. Но так не бывает.
в условии стоит "или"
У вас условие цикла while всегда истинно. Цикл будет идти бесконечно.
#property strict
void OnStart()
{
int a = 7;
while(a != 0 || a != 2 || a != 5 || a != 8)
{
a--;
Alert("a=",a, " a!=0 = ",a!=0, " a!=2 = ",a!=2," a!=0 || a!=2 = ",a!=0 || a!=2 );
if(a<-2)return;
}
}
Выражение ИЛИ равно true, если хотя бы одна часть true. Здесь все почти всегда true. Для разрешения проблем используйте функцию Alert - полезная штука
Поделитесь секретом, для чего это нужно? Где тут профит? Если это просто для общего развития, то надо брать примеры проще и все выводить Alert на экран или в файл
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет, наткнулся на глупенькую ошибку. Почему то не срабатывает условие цикла while, вот код:
int a = 7;while(a != 0 || a != 2 || a != 5 || a != 8){
a -= 1;}