Ein wirklich erstaunliches Ergebnis!!!

 

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.
}

Nun eine Frage an Sie: Wer stört mich oder MQL4???

Danke:)

 

Wahrlich reizvoll!


Es sieht so aus, als könnten Sie damit schnelles Geld verdienen!

 

Womit sind Sie nicht zufrieden?
ja=1, nein=0,

a<=f erfüllt nicht

==richtige Antwort

 
Korey >> :

Womit sind Sie nicht zufrieden?
ja=1, nein=0,

a<=f ist nicht erfülltc

== richtige Antwort

Aber es funktioniert (a>=s || a<=f) && s>f

 
WWer писал(а) >>

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

Dann sollten die Klammern lauten

 
Vinin >> :

Sie hätten Klammern setzen sollen

Warum? || hat eine höhere Priorität als &&

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

Im Allgemeinen müssen Sie sie explizit mit Klammern trennen. Ich bin schon einmal darauf hereingefallen.

WWer >>:

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

also geben Sie es im Code an, damit das Skript es verstehen kann =)


 
Korey писал(а) >>

Womit sind Sie nicht zufrieden?
>> ja=1, nein=0,

a<=f erfüllt nicht

==f ist richtig

Die Antwort ist entweder richtig, oder es handelt sich um eine sehr seltsame Regel in MQL4, oder die logischen Operationen werden nach einer sehr seltsamen Regel ausgeführt. Es sieht nicht wie C/C++ oder etwas anderes aus. Ich habe es sogar in JavaScript übersetzt:

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));
Ergebnis: wahr falsch wahr wahr wahr
 
WWer писал(а) >>

Und warum? || hat eine höhere Priorität als &&

Umgekehrt hat && eine höhere Priorität als ||.

 
nen >> :

Umgekehrt hat && eine höhere Priorität als ||

IN MQL4 ? Möglicherweise, aber es sollte so sein.

 

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

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

Deshalb müssen an den entsprechenden Stellen Klammern gesetzt werden.