Un résultat vraiment étonnant ! !!

 

Code :

void DebugInfo()
{
   int a=23;
   int s=20;
   int f=1;
   // Исходное условие
   bool r1 = a>= s && a<= f && s<= f || ( a>= s || a<= f) && s> f;
   // Дальше пошли извращения
   bool r2 = a>= s && a<= f && s<= f;
   bool r3 = ( a>= s || a<= f) && s> f;
   bool r4 = r2 || r3;
   // Вывод
   Print ( r1+" "+ r2+" "+ r3+" "+ r4);
   // Результат: 0 0 1 1. А должно быть: 1 0 1 1.
}

Maintenant, une question à vous poser : qui fait du glitching, moi ou MQL4 ? ??

Merci :)

 

Vraiment délicieux !


On dirait que tu pourrais te faire de l'argent rapidement avec celui-là !

 

Qu'est-ce qui ne vous satisfait pas ?
oui=1, non=0,

a<=f ne remplit pas

==bonne réponse

 
Korey >> :

Qu'est-ce qui ne vous satisfait pas ?
oui=1, non=0,

a<=f n'est pas remplic

== bonne réponse

Mais il fait (a>=s || a<=f) && s>f

 
WWer писал(а) >>

Mais (a>=s || a<=f) && s>f

Alors les parenthèses devraient être

 
Vinin >> :

Vous auriez dû mettre des parenthèses

Pourquoi ? || a une priorité plus élevée que &&

 
(a>=s || a<=f) - 1 || 0 = 1
(a>=s || a<=f) && s > f - 1 && 1 = 1

En fait, vous devriez explicitement le mettre entre parenthèses. Je suis déjà tombé dans le panneau une fois.

WWer >>:

Зачем? У || большый приоритет чем у &&

alors spécifiez-le dans le code, pour que le script puisse le comprendre =)


 
Korey писал(а) >>

Qu'est-ce qui ne vous satisfait pas ?
>> oui=1, non=0,

a<=f ne remplit pas

==f est correct

Soit la réponse est correcte, soit il s'agit d'une règle très étrange dans MQL4, soit les opérations logiques sont effectuées par des règles très étranges. Ça ne ressemble pas à du C/C++ ou autre. Je l'ai même traduit en JavaScript :

var a=23;
var s=20;
var f=1;
// Исходное условие
var r1 = a>=s && a<=f && s<=f || (a>=s || a<=f) && s>f;
// Дальше пошли извращения
var r2 = a>=s && a<=f && s<=f;
var r3 = (a>=s || a<=f) && s>f;
var r4 = r2 || r3;
// Вывод
WScript.Echo(String(r1)+" "+String(r2)+" "+String(r3)+" "+String(r4));
Résultat : vrai faux vrai vrai vrai vrai
 
WWer писал(а) >>

Pourquoi ? || a une priorité plus élevée que &&

Inversement, && a une priorité plus élevée que ||.

 
nen >> :

Inversement, && a une priorité plus élevée que |||.

DANS MQL4 ? C'est possible, mais ça devrait l'être.

 

Pas du tout ! Le "ou" (||) a la priorité ici - sans ambiguïté !

S'il n'y a pas de parenthèses, || est exécuté en premier, puis &&.

Les supports doivent donc être placés aux endroits appropriés.