iif(,,) ? Объясните чайнику :(

 

Есть описание удобнейшей функции iif(,,) https://www.mql5.com/ru/articles/1491

Почему у меня она не работает, точнее ее не определяет как функцию?

 
А как ты ее опрделяешь?
 
 iif(,,)  
 //ошибка в написании, нужно писать так
if(,,)
 
Попробуй использовать такую конструкцию double iif(bool A,double B, double C) {if(A) return(B);return(C);}
 

Правильно должно быть так:

prevtime = iif(1>0,Time[0],Time[1]);

:(((((

 
Но ты же сравниваешь две константы. Зачем. У тебя всегда будет выполняться условия (1>0) и возвращаться значение Time[0]
 
ах вон вы про что :-) 
int start(){ 
double prevtime = iif(1>0,Time[0],Time[1]);
string text =prevtime;
MessageBox(text);
} 
 
double iif( bool condition, double ifTrue, double ifFalse ){
  if( condition ) return( ifTrue );
   return( ifFalse );
}
тогда вот
 
xeon:
ах вон вы про что :-) 
int start(){ 
double prevtime = iif(1>0,Time[0],Time[1]);
string text =prevtime;
MessageBox(text);
} 
 
double iif( bool condition, double ifTrue, double ifFalse ){
  if( condition ) return( ifTrue );
   return( ifFalse );
}
тогда вот


Видимо я и правда чайник... :( Все гениальное просто :) Самому организовать iif в недоделанном MQL4 ver. b

Спасибо xeon

Если продолжить тему то нужно организовать три iifа - IIFStr(), IIFInt(), IIFDbl()

А я все пытался найти ииф в ЭМКУЭЛь :(

8ж)

ЗЫ спасибо за отзывчивость Vinin!

мяф

 

Для строковых может и надо, но в остальных случаях будет работать хорошо и double.

 

xeon хотел для нас написать вот это:

double IIfDbl(bool condition,double ifTrue,double ifFalse){if(condition)return(ifTrue);return(ifFalse);}
int    IIfInt(bool condition,int    ifTrue,int    ifFalse){if(condition)return(ifTrue);return(ifFalse);}
string IIfStr(bool condition,string ifTrue,string ifFalse){if(condition)return(ifTrue);return(ifFalse);}

Vinin >>>> Для строковых может и надо, но в остальных случаях будет работать хорошо и double.

в принципе согласен.