Множественное сравнение: как это реализовать?

 

Как можно без изощреных путей...? плиз...

В чём вопрос: надо сравнить что-то с рядом значений

int колбаса=100;
if (колбаса == 100|200|300) Alert ("c: ",колбаса);

однако так не работает...

Ежли включить ИЛИ, то колбасит по любой цене

int колбаса=100;
if (колбаса == 100||200) Alert("o : ",колбаса);

т.е. присвоим значение колбасе 120, он и выдаст алерт 120

укажем 300 так и выдаст 300, в общем никакого ЕСЛИ ;))) то...

-

Надо же простое, например, если номер текущего дня = набор чисел

if (Day() == 1 или 4 или 7 и т.д..) Alert("o : ",колбаса);

Пока что вышел из ситуёвины подсчётом столбиком ;)

if (Day() == 1) Alert("o : ",колбаса);
if (Day() == 4) Alert("o : ",колбаса);
if (Day() == 7) Alert("o : ",колбаса);
if (Day() == 10) Alert("o : ",колбаса);
if (Day() == 16) Alert("o : ",колбаса);
if (Day() == 19) Alert("o : ",колбаса);
if (Day() == 25) Alert("o : ",колбаса);
или же всё таки есть другие решения?
 
if (колбаса == 100 || колбаса == 200) Alert("o : ",колбаса);
 

ага... так...

уже полегче...

спасибо! ;)

 

а структурой switсh (https://docs.mql4.com/ru/basis/operators/switch) слабо?

    int er=5;
    switch(er)
  {
   case 1 || 2 || 3 || 4:
      Print("KOLBASA");
      break;
   default:
      Print("HLEB");
      break;
  }


 

тааак... а вот это интересней...

провентилирую и этот вариант.

-

На вскидку без проверки вижу так:

switch(Day())
  {
   case 1 || 5 || 19 || 25:
      Print("День получки");
      break;
   default:
      Print("Аванса не будет!");
      break;
  }
[Удален]  
Это нейросеть. Замути с помошью нейрошела или тут кто-то выкладывал классный скрипт сети.
 

Нууу... юзать невросеть вычленяя день получки это жестоко... :)))

А для простого сравнения дня месяца с 1, 5, 15 и 25 невросеть слишком проста...

 
kombat:

тааак... а вот это интересней...

провентилирую и этот вариант.

-

На вскидку без проверки вижу так:

switch(Day())
  {
   case 1 || 5 || 19 || 25:
      Print("День получки");
      break;
   default:
      Print("Аванса не будет!");
      break;
  }

Это где так часто денежки дают?

 
Vinin:

Это где так часто денежки дают?

На форЫксе... :)))

Это случайные цифири...

Хотя понедельная оплата уже практикуется многими.

-

Кстати, раньше у военослужащих получка была 13 числа. ;)

-

Множественным сравнением, точнее сравнение с множеством,

по большому счёту понадобилось для автоматизации напоминания различных календарных

событий имеющие постоянную основу, т.к. праздники, выход экономических данных и прочее,

что имеет в своих свойствах: 17 мая "День стакана", каждый второй вторник месяца и т.д...

-

Ну и чисто практический интерес, например снижение риска, т.е. увеличение коэфициента,

double Lot=свободно/маржа/коэфициент/коэфиц2

который снижает обьём торгуемых позиций в зависимости от дня месяца

(если расчёт с инвестором в конце каждого месяца)

тем самым снижая риски...

Коэфиц2 дополнительно снизит лот если этот день "новостной".

Например обычный день коэф. 1 и прктически не влияет на обьём,

то празднники уже 2, хто его знает как будет торговаться йена во время "Золотой недели" ...

А новости так и вообще 3, и в рынке и в тоже время снизили риск...

 

Упс... немного не в тему, но вот таки дела...

Начинаю писать в едиторе:

if (Week

и ясно понимаю что с недельками будут проблемы...

В общем оказалось нет простого решения узнать номер недели месяца.

Это понадобилось для определения "каждого второго вторника" ...

 
kombat:

В общем оказалось нет простого решения узнать номер недели месяца.

Это понадобилось для определения "каждого второго вторника" ...

А если немножко подумать? Второй вторник месяца - это день месяца лежащий в интервале 8-14, так? Соответственно четвёртый вторник будет лежать в интервале 22-28. Ну и останется проверить день недели, для этого предусмотрена функция. Так что ничего сложного, код уместится в одну строчку :)