Ein wirklich erstaunliches Ergebnis!!! - Seite 2

 

Beachten Sie die Dokumentation Prioritäten und Reihenfolge der Vorgänge:

Jede Gruppe von Vorgängen in der Tabelle hat die gleiche Priorität. Je höher die Priorität einer Gruppe von Vorgängen ist, desto höher wird sie in der Tabelle eingestuft. Die Reihenfolge der Ausführung bestimmt die Gruppierung von Operationen und Operanden.

() Funktionsaufruf von links nach rechts
[] Auswahl der Array-Elemente
!      Logische Verneinung Von rechts nach links
- Vorzeichenwechsel
++ Erhöhung um eins (Inkrement)
-Verringerung um eins (Dekrement)
~ Bitweise Negation (Komplement)
& Bitweise UND-Verknüpfung Von links nach rechts
| Bitweises ODER
Bitweises exklusives ODER (eXclude OR)
<< Linksverschiebung
>> Verschiebung nach rechts
* Multiplikation von links nach rechts
/ Teilung
% Modulo-Division
+ Von links nach rechts addieren
- Subtraktion
<= Weniger als von links nach rechts
<= Kleiner als oder gleich
>= Größer als
>= Größer oder gleich
== Gleichberechtigt
!= Nicht gleich
|| ODER logische Verknüpfung von links nach rechts
&& Boolesche Operation AND Von links nach rechts
== Zuordnung von rechts nach links
+= Addition und Zuweisung
= Subtraktion mit Zuordnung
*= Multiplizieren mit Zuweisung
/= Division mit Zuweisung
%= Modulo-Division mit Zuweisung
>>= Rechtsverschiebung mit Zuweisung
<<= Linksverschiebung mit Zuordnung
&= Zugeordnetes Bitwise AND
|= Bitweises ODER und Zuweisung
^= Ausschließendes OR mit Zuordnung
Komma Von links nach rechts

Klammern werden verwendet, um die Reihenfolge der Ausführung der Operation zu ändern, und haben die höchste Priorität.


Achtung: Die Priorität der Operationen in MQL4 unterscheidet sich leicht von der in C.


Es ist also wahr


 

LOL


Kompilieren Sie in C von run, wenn Sie zu faul zum Überprüfen sind.


Der Compiler ist zu hundert Prozent GLUCK.

 

OH, DER HIMMEL!

UND DIE PANNE LIEGT IM C, UND WIR DACHTEN.... WARUM ES EINE KRISE AUF DEM PLANETEN GIBT.

 

Man lebt und lernt. Ich habe immer geglaubt, dass man zuerst AND und dann OR ausführt. Und mit diesem Verständnis haben alle Programme gut funktioniert. Auch sehr komplizierte logische Kombinationen.

Aber hier...

Nein, Sie sollten besser nicht in den Foren lesen. Sie bringen alles durcheinander.

Programme funktionieren gut.... jetzt werden sie glitchy sein... :))))))))

 
Rosh, wow ist das richtig... In Mathematik oder anderen Sprachen gibt es so etwas nicht, aber in MQL4 ist es wahr? Dann ist es ein Fehler in den Gehirnen der Entwickler :) Entschuldigung...
 
rid >> :

Ganz und gar nicht! Das "oder"(||) hat hier Vorrang - eindeutig!

Wenn keine Klammern vorhanden sind, wird zuerst || ausgeführt und dann &&

Aus diesem Grund müssen Klammern an den entsprechenden Stellen angebracht werden.


Aber...

   bool a = false, 
      b = true, 
      c = false;
   
   bool res = a || b && c;
   Print( res);               // 1 !
Zinn
 
... und hier... einfach Klammern setzen, Klammern setzen, Klammern setzen, meine Herren! Kein Problem. Und das Programm wird leichter zu verstehen sein. Niemand hat jemals versprochen, dass MQL4 = C++/.
 
Es gibt eine Norm, und sie muss eingehalten werden. Und wenn die Entwickler ihre eigene Norm erstellen, die der allgemein anerkannten Norm widerspricht, dann... Schmutz ist... Unsinn.
 

Ich habe den ersten Beitrag in Matcad überprüft. Die Antwort lautet 1 0 1 1

Hier ist der Code

 

Um ehrlich zu sein, habe ich mir die Priorität von logischen und bitweisen Operationen nie gemerkt. Aus angeborener Faulheit habe ich einfach Klammern an den richtigen Stellen gesetzt.

"Es gibt viel, Freund Horace...."

Grund der Beschwerde: