Aynı eyleme neden olan koşullarda birçok "veya" (||)'dan kaçmak mümkün müdür?

 

Operatörlerin hiçbiri uygun değil. Belki if(A || B || C || D || E) Action; olmadan başka bir yol vardır.

Aklıma takılan ve daha mantıklı bir çözüm bulamadığım konunun öneminden dolayı moderatörlerin genel konuya soru göndermemelerini rica ediyorum! Teşekkür ederim!

 

basitçe boole değişkenlerinde yapabilirsiniz, örneğin

X=A || B;

X=X || C || D;

X=X || E;

if (X) Eylem;

 
Avals :

basitçe boole değişkenlerinde yapabilirsiniz, örneğin

X=A || B;

X=X || C || D;

X=X || E;

if (X) Eylem;

Cevabınız için teşekkürler! Ve bu booller, sürekli değişen piyasa koşullarına bağlı olarak birçok parametreyi içeren oldukça karmaşık olabilir mi?
 
borilunad :
Cevabınız için teşekkürler! Ve bu booller, sürekli değişen piyasa koşullarına bağlı olarak oldukça karmaşık olabilir mi?


kesinlikle

 
Avals :


kesinlikle

Tekrar teşekkürler! Şimdi deneyeceğim!

Dock'a baktı ve şunları gördü:

 bool a = true ;
bool b = false ;
bool c = 1 ;

а = (isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo);
Boole yapmak ve bu değeri vermek mümkün mü?

 
borilunad :

Tekrar teşekkürler! Şimdi deneyeceğim!

Dock'a baktı ve şunları gördü:


Mümkün, sadece işin hızı çok düşüyor
 
Vinin :

Mümkün, sadece işin hızı çok düşüyor
Ve if () içindeki bu "veya" hıza yansıtılmıyor mu?
 
borilunad :
Ve if () içindeki bu "veya" hıza yansıtılmıyor mu?

Elbette yansıtırlar. Kontrol etmek gerekiyor.
 
Vinin :

Elbette yansıtırlar. Kontrol etmek gerekiyor.
Ancak hızlı bir şey bulmanın bir yolu yoksa, if() ile kalın! Benim için tüm fonksiyonlarda gereksiz kontrolleri kaldırarak frenlemeyi zaten önemli ölçüde azalttım. İlginiz için çok teşekkür ederim! Tüm olası seçenekleri öğrenmekten ve kontrol etmekten memnuniyet duyacağım!
 

Hesaplamaları şu şekilde de optimize edebilirsiniz:

     bool M = false ;

     if (A) M = true ; else if (B) M = true ; else if (C) M = true ; else if (D) M = true ; else if (E) M = true ;
     if (M) Action;
 

veya bunun gibi:

     bool M = true ;

     if (!A) if (!B) if (!C) if (!D) if (!E) M = false ;
     if (M) Action;