3. MQL4 dla początkujących. Część III.

3.5. Typy zmiennych: typ logiczny

bool

Ten typ służy do przechowywania jednej z dwóch logicznych wartości: false (fałsz) lub true (prawda). Ich liczbowa reprezentacja to odpowiednio 0 i 1. W pamięci zajmuje 1 bajt (8 bitów).

Kod 1
#property strict

bool b1 = true, b2 = false;

void OnStart()
  {
//---
   if(b1 == true)
      Print("b1 to true.");
   else
      Print("b1 to false.");
//---
   if(b2 == true)
      Print("b2 to true.");
   else
      Print("b2 to false.");
//---
  }

Rys. 1. Wynik działania skryptu.


Dopuszczalne jest przypisywanie zmiennym typu bool liczb całkowitych lub zmiennoprzecinkowych i kompilator nie wygeneruje błędu. Liczba 0 zostanie zinterpretowana jako false, a wszystkie inne jako true (kod 2).

Kod 2
#property strict

void OnStart()
  {
//---
   bool b3 = 1;     // true
   if(b3 == true) Print("b3 to true.");
   else Print("b3 to false.");
//---
   bool b4 = 0;     // false
   if(b4 == true) Print("b4 to true.");
   else Print("b4 to false.");
//---
   bool b5 = 7;     // true
   if(b5 == true) Print("b5 to true.");
   else Print("b5 to false.");
//---
   bool b6 = -555;  // true
   if(b6 == true) Print("b6 to true.");
   else Print("b6 to false.");
//---
   bool b7 = 0.12;  // true
   if(b7 == true) Print("b7 to true.");
   else Print("b7 to false.");
//---
   bool b8 = 0.0;   // false
   if(b8 == true) Print("b8 to true.");
   else Print("b8 to false.");
//---
   bool b9 = 3 + 55;  // true
   if(b9 == true) Print("b9 to true.");
   else Print("b9 to false.");
//---
   bool b10 = 3 * 8;  // true
   if(b10 == true) Print("b10 to true.");
   else Print("b10 to false.");
//---
   bool b11 = 7 - 7;  // false, ponieważ 7 - 7 = 0
   if(b11 == true) Print("b11 to true.");
   else Print("b11 to false.");
//---
   bool b12 = 0.5 - 0.5; // false, ponieważ 0.5 - 0.5 = 0.0
   if(b12 == true) Print("b12 to true.");
   else Print("b12 to false.");
//---
   bool b13 = true + true;  // true, ponieważ true + true = 1 + 1 = 2
   if(b13 == true) Print("b13 to true.");
   else Print("b13 to false.");
//---
   bool b14 = true - true;  // false, ponieważ true - true = 1 - 1 = 0
   if(b14 == true) Print("b14 to true.");
   else Print("b14 to false.");
//---
   bool b15 = false + false; // false, ponieważ false + false = 0 + 0 = 0
   if(b15 == true) Print("b15 to true.");
   else Print("b15 to false.");
//---
  }

Rys. 2. Wynik działania skryptu.