2. MQL4 dla początkujących. Część II.

2.3. Operatory porównania

Do tej pory, omawiając operator warunkowy if, stosowaliśmy operator porównania == . Przypomnę, że jeden znak równości = służy do przypisania wartości zmiennej, a podwójny znak równości == do porównywania dwóch zmiennych. W tym rozdziale poznamy inne operatory porównania stosowane w MQL4.

Tabela 1. Operatory porównania.

 Operator 
Opis
   A == B
  Prawda jeśli A równa się B 
   A != B  Prawda jeśli A nie równa się B 
   A < B  Prawda jeśli A jest mniejsze niż B 
   A > B  Prawda jeśli A jest większe niż B 
   A <= B  Prawda jeśli A jest mniejsze lub równe B 
   A >= B  Prawda jeśli A jest większe lub równe B 

Niżej opisałem przykłady stosowania tych operatorów.


1. Przykłady stosowania    ==    (... równa się ...):


Kod 1
#property strict

void OnStart()
  {
//--- deklaracja i inicjalizacja zmiennych
   int    A_1 = 1,         A_2 = 1;
   double B_1 = -2.2,      B_2 = 5.5;
   string C_1 = "Puszek ", C_2 = "Okruszek";
   bool   D_1 = true,      D_2 = false;

//--- 1)
   if(A_1 == A_2) // wynik porównania - prawda
      Print("A_1 jest równe A_2");
   else
      Print("A_1 nie jest równe A_2");

//--- 2)
   if(B_1 == B_2) /* wynik porównania - fałsz,
                     działanie przechodzi do operatora 'else' */

      Print("B_1 jest równe B_2");
   else
      Print("B_1 nie jest równe B_2");

//--- 3)
   if(C_1 == C_2) /* wynik porównania - fałsz,
                     działanie przechodzi do operatora 'else' */

      Print("C_1 jest równe C_2");
   else
      Print("C_1 nie jest równe C_2");

//--- 4)
   if(D_1 == D_2) /* wynik porównania - fałsz,
                     działanie przechodzi do operatora 'else' */

      Print("D_1 jest równe D_2");
   else
      Print("D_1 nie jest równe D_2");
  }

Skopiuj ten kod do skryptu, następnie uruchom go w terminale i w dzienniku logów w zakładce Strategie zobaczysz komunikaty. Potem skopiuj po kolei wszystkie poniższe kody i sprawdź ich działanie.

Rys. 1. Operatory porównania.


2. Przykłady stosowania    !=    (... nie równa się ...):


Kod 2
#property strict

void OnStart()
  {
   string C_1 = "Puszek ", C_2 = "Okruszek";
   bool   D_1 = true,      D_2 = false;

//--- 1)
   if(C_1 != C_2) /* wynik porównania - prawda,
                     ponieważ C_1 nie jest równe C_2 */

      Print("C_1 nie jest równe C_2");
   else
      Print("C_1 jest równe C_2");

//--- 2)
   if(D_1 != D_2) /* wynik porównania - prawda,
                     ponieważ D_1 nie jest równe D_2 */

      Print("D_1 nie jest równe D_2");
   else
      Print("D_1 jest równe D_2");
  }

Rys. 2. Operator porównania - nie równa się.


3. Przykłady stosowania    <    (... jest mniejsze niż ...):


Kod 3
#property strict

void OnStart()
  {
   int    A_1 = 1,    A_2 = 1;
   double B_1 = -2.2, B_2 = 5.5;

//--- 1)
   if(A_1 < A_2) /* wynik porównania - fałsz,
                    ponieważ A_1 nie jest mniejsze niż A_2 */

      Print("A_1 jest mniejsze niż A_2");
   else
      Print("A_1 nie jest mniejsze niż A_2");

//--- 2)
   if(B_1 < B_2) /* wynik porównania - prawda,
                    ponieważ B_1 jest mniejsze niż B_2 */

      Print("B_1 jest mniejsze niż B_2");
   else
      Print("B_1 nie jest mniejsze niż B_2");
  }

Rys. 3. Operator porównania - jest mniejsze niż.


4. Przykłady stosowania    >    (... jest większe niż ...):


Kod 4
#property strict

void OnStart()
  {
   int    A_1 = 1,    A_2 = 1;
   double B_1 = -2.2, B_2 = 5.5;

//--- 1)
   if(A_1 > A_2) // wynik porównania - fałsz

      Print("A_1 jest większe niż A_2");
   else
      Print("A_1 nie jest większe niż A_2");

//--- 2)
   if(B_1 > B_2) // wynik porównania - fałsz

      Print("B_1 jest większe niż B_2");
   else
      Print("B_1 nie jest większe niż B_2");
  }

Rys. 4. Operator porównania - jest większe niż.


5. Przykłady stosowania    <=    (... jest mniejsze lub równe ...):


Kod 5
#property strict

void OnStart()
  {
   int    A_1 = 1,    A_2 = 1;
   double B_1 = -2.2, B_2 = 5.5;

//--- 1)
   if(A_1 <= A_2) /* wynik porównania - prawda,
                     A_1 nie jest mniejsze niż A_2
                     ale są one równe
                     tj. jeden z warunków porównania jest prawdziwy */

      Print("A_1 jest mniejsze lub równe A_2");
   else
      Print("A_1 nie jest mniejsze lub równe A_2");

//--- 2)
   if(B_1 <= B_2) /* wynik porównania - prawda,
                     ponieważ B_1 jest mniejsze niż B_2
                     ale nie są one równe
                     tj. jeden z warunków porównania jest prawdziwy */

      Print("B_1 jest mniejsze lub równe B_2");
   else
      Print("B_1 nie jest mniejsze lub równe B_2");
  }

Rys. 5. Operator porównania - jest mniejsze lub równe.


6. Przykłady stosowania    >=    (... jest większe lub równe ...):


Kod 6
#property strict

void OnStart()
  {
   int    A_1 = 1,    A_2 = 1;
   double B_1 = -2.2, B_2 = 5.5;

//--- 1)
   if(A_1 >= A_2) /* wynik porównania - prawda,
                     A_1 nie jest większe niż A_2
                     ale są one równe
                     tj. jeden z warunków porównania jest prawdziwy */

      Print("A_1 jest większe lub równe A_2");
   else
      Print("A_1 nie jest większe lub równe A_2");

//--- 2)
   if(B_1 >= B_2) /* wynik porównania - fałsz,
                     B_1 nie jest większe niż B_2
                     i nie są one równe
                     tj, żaden z warunków porównania nie jest prawdziwy */

      Print("B_1 jest większe lub równe B_2");
   else
      Print("B_1 nie jest większe lub równe B_2");
  }

Rys. 6. Operator porównania - jest większe lub równe.