Un résultat vraiment étonnant ! !! - page 2

 

Reportez-vous à la documentation Priorités et ordre des opérations:

Chaque groupe d'opérations du tableau a la même priorité. Plus la priorité d'un groupe d'opérations est élevée, plus il est placé haut dans le tableau. L'ordre d'exécution détermine le regroupement des opérations et des opérandes.

() Appel de fonction de gauche à droite
[] Sélection d'éléments de tableau
!      Négation logique De droite à gauche
- Changement de signe
++ Augmenter de un (incrément)
--Diminuer de un (décrémenter)
~ Négation par bit (complément)
Opération ET par bit de gauche à droite
| OU par bit
OU exclusif par bit (eXclude OR)
<< Décalage vers la gauche
>> Déplacement vers la droite
* Multiplication de gauche à droite
/ Diviser
Division modulo
+ Ajouter de gauche à droite
- Soustraction
<= Moins que de gauche à droite
<= Inférieur ou égal à
>= Plus grand que
>= Supérieur ou égal
== Equal
!= Non égal
|| OR opération logique De gauche à droite
&& Opération booléenne AND de gauche à droite
== Affectation de droite à gauche
+= Addition et affectation
= Soustraction avec affectation
*= Multiplier avec l'affectation
/= Division avec affectation
%= Division modulo avec affectation
>>= décalage à droite avec affectation
<<= Décalage à gauche avec affectation
&= Assigned Bitwise AND
|= OU et affectation par bit
^= Exclusion de l'OR avec affectation
virgule De gauche à droite

Les parenthèses sont utilisées pour modifier l'ordre d'exécution de l'opération et ont la priorité la plus élevée.


Attention : La priorité des opérations en MQL4 diffère légèrement de celle en C.


Alors c'est vrai.


 

LOL


Compilez en C à partir de l'exécution si vous êtes trop paresseux pour vérifier.


Le compilateur est à cent pour cent GLUCK.

 

OH, LES CIELS !

ET LE PROBLÈME EST DANS LE C, ET NOUS AVONS PENSÉ.... POURQUOI IL Y A UNE CRISE SUR LA PLANÈTE.

 

On vit et on apprend. J'ai toujours pensé qu'il fallait d'abord exécuter AND, puis OR. Et grâce à cette compréhension, tous les programmes ont bien fonctionné. Même des combinaisons logiques très compliquées.

Mais ici...

Non, vous feriez mieux de ne pas lire les forums. Ils confondent tout.

Programmes travaillés finement.... maintenant ils vont être glitchy... :))))))))

 
Rosh, wow c'est vrai... Une telle chose n'existe pas en mathématiques ou dans d'autres langues, mais dans MQL4, c'est vrai ? Il s'agit alors d'une défaillance du cerveau des développeurs :) Désolé...
 
rid >> :

Pas du tout ! Le "ou" (||) prime ici - sans équivoque !

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

C'est pourquoi les crochets doivent être placés aux endroits appropriés.


Cependant...

   bool a = false, 
      b = true, 
      c = false;
   
   bool res = a || b && c;
   Print( res);               // 1 !
étain
 
... et ici... mettez juste des parenthèses, mettez des parenthèses, mettez des parenthèses, messieurs ! Pas de problème. Et le programme sera plus facile à comprendre. Personne n'a jamais promis que MQL4 = C++/.
 
Il existe une norme et elle doit être respectée. Et si les développeurs produisent leur propre norme qui contredit la norme généralement acceptée, alors... la saleté est... des déchets.
 

J'ai vérifié le premier message dans Matcad. La réponse est 1 0 1 1

Voici le code

 

Pour être honnête, je n'ai jamais mémorisé la priorité des opérations logiques et bitwise. En raison d'une paresse innée, j'ai juste mis des parenthèses aux bons endroits.

"Il y a beaucoup, ami Horace...."

Raison: