Phép toán logic
Phép phủ định logic NOT (!)
Toán hạng của phép phủ định logic (!) phải thuộc kiểu số học. Kết quả là TRUE (1) nếu giá trị toán hạng là FALSE (0); và bằng FALSE (0) nếu toán hạng khác FALSE (0).
cpp
if(!a) Print("not 'a'");
1
Phép toán logic OR (||)
Phép toán logic OR (||) của giá trị x và y. Giá trị biểu thức là TRUE (1) nếu giá trị x hoặc y là đúng (khác không). Ngược lại - FALSE (0).
cpp
if(x<0 || x>=max_bars) Print("out of range");
1
Phép toán logic AND (&&)
Phép toán logic AND (&&) của giá trị x và y. Giá trị biểu thức là TRUE (1) nếu giá trị của x và y đều đúng (khác không). Ngược lại - FALSE (0).
Đánh giá ngắn gọn của phép toán logic
Sơ đồ của cái gọi là "đánh giá ngắn gọn" được áp dụng cho các phép toán logic, tức là việc tính toán biểu thức sẽ dừng lại khi kết quả của biểu thức có thể được đánh giá chính xác.
cpp
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- ví dụ đầu tiên về đánh giá ngắn gọn
if(func_false() && func_true())
{
Print("Operation &&: You will never see this expression");
}
else
{
Print("Operation &&: Result of the first expression is false, so the second wasn't calculated");
}
//--- ví dụ thứ hai về đánh giá ngắn gọn
if(!func_false() || !func_true())
{
Print("Operation ||: Result of the first expression is true, so the second wasn't calculated");
}
else
{
Print("Operation ||: You will never see this expression");
}
}
//+------------------------------------------------------------------+
//| the function always returns false |
//+------------------------------------------------------------------+
bool func_false()
{
Print("Function func_false()");
return(false);
}
//+------------------------------------------------------------------+
//| the function always returns true |
//+------------------------------------------------------------------+
bool func_true()
{
Print("Function func_true()");
return(true);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Xem thêm