一些数字和字符的组合是特别重要的,它们被称为运算符,例如: + - * / % 算术运算符 && || 逻辑运算符 = += *= 负值运算符 标识符加运算符就是表达式。 举例说明: x = (y*z)/w; x,y,z和 w是标识符 =,* 和/ 是运算符 整个这行是表达式。 表达式组成语句,语句组成函数,函数组成程序。 ■算数运算符 算术运算符包括加法和乘法运算: 添加1的运算符不能使用在表达式中。 int a=3; a++; // 有效表达式 int b=(a++)*3; // 无效表达式 b=a*5 // 有效表达式 |
■赋值运算符 任何表达式的目的是产生一个结果,赋值运算符把这个结果赋予给左边的操作数。例如: A=B*C 在这里,我们把B和C相乘,并把结果赋予给A。(=在这儿是赋值运算符) MQL4有11个赋值运算符: 把B的值赋予A A = B; 在 y 值上加上 x y += x; 在 y 值上减去 x y -= x; 在 y 值上乘以 x y *= x; 在 y 值上除以 x y /= x; 在 y 值上求 x 的模 y %= x; 把 y 值向右做 x 位逻辑移位 y >>= x; 把 y 值向左做 x 位逻辑移位 y <<= x; AND 位运算符 y &= x; OR 位运算符 y |= x; 把 x 和 y 按做逻辑异或的操作 y ^= x; ■关系运算符 用返回0(False)或1(True)来表示两个量之间的关系。 逻辑值FALSE代表整数零值,逻辑值TRUE 代表不同于零的任何值。 MQL4有六个关系运算符。示例如下: 4 == 4; //等于,结果TRUE,或1 4 < 4; //小于,结果为FALSE或0 4>4; //大于,结果为FALSE或0 4 <= 4 ; //小于等于,结果为TRUE或1 4>=4 ; //大于等于,结果为TRUE或1 4!=4 ; //不等于,结果为FALSE或0 ■布尔运算符(逻辑运算符) 逻辑运算符是根据表达式的值来返回真值或是假值。 MQL4使用3个逻辑运算符: | | | | | | | 如果A和B值都是真实的,表达式值为TRUE (1)。 否则,表达式的值为FALSE (0). | | | | A和B值的逻辑运算符或OR (||)用来表示两个表达式只要有一个成立即可。如果A和B值为真的,表达式值为TRUE (1)。否则,值为FALSE (0)。逻辑表达式被完全计算。 | | | | 否定运算符(!),用来表示真假的反面的结果。如果运算值是FALSE (0) 结果为TRUE (1);如果运算不同于FALSE (0)等于FALSE (0) 。 |
■位逻辑运算符 位逻辑运算符和逻辑运算符比较相似,只是他们工作在一个比较小的范围---二进制数据。 运算符对操作数执行按位求补操作。表达式的数字值中包含1,其中n 包含 0和数字值中包含0 ,其中 n 包含 1。 b = ~n; 运算符x 向右移动到数字y 代表二进制代码。向右移动是逻辑运算,即左侧将被零填满。 x = x >> y; 运算符x 向右移动到数字y 代表二进制代码。左侧将被零填满 x = x << y; 二进制的x 和y代表位逻辑运算符AND 。在所有数组中x和y的值都不含有零表达式的值包含1 (TRUE);在所有其他数字中包含0 (FALSE)。 b = ((x & y) != 0); 二进制的x 和y代表位逻辑运算符OR。在所有数字中x和y的值都不等于零表达值包含1 并且在所有其他数字中包含0。 b = x | y; 二进制的x 和y代表位逻辑运算符EXCLUSIVE 。在所有数字中x和y的值都不同于二进制值表达值包含1并且在所有其他数字中包含0 。 b = x ^ y; 位逻辑运算符只作用于Integers类型。 ■其他运算符 这些运算符不属于前面任何一个种类。 ■ 优先级 下面是从上到下的运算优先规则,优先级高的将先被运算。 () 函数调用 从左到右 [] 数组元素参考 ! 真假运算符 从右到左 - 改变运算符 ++ 增量 -- 减量 ~ 位逻辑运算符 & 位逻辑运算符 AND 从左到右 | 位逻辑运算符 OR ^ 位逻辑运算符 OR << 左移 >> 右移 * 乘法 从左到右 / 除法 % 百分比 + 加法 从左到右 - 减法 < 小于 从左到右 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于 || 逻辑 OR 从左到右 && 逻辑 AND 从左到右 = 值 从右到左 += 加法值 -= 减法值 *= 乘法值 /= 除法值 %= 百分比值 >>= 右移值 <<= 左移值 &= 位逻辑运算符 AND值 |= 位逻辑运算符OR值 ^= 位逻辑运算符 OR值 , 逗号 从左到右 插入语会显示所优先执行的运算
注意:在MQL4程序中执行优先运算不同于在C 语言范围内的运算。 在MQL4中,正常的流程控制是从上而下一个语句一个语句的执行。 一个语句是一行代码,它让电脑做某些事情。 例如: Print("Hello World"); return 0; 语句后面的分号是语法中至关紧要的部分,也是最容易被遗忘的部分。 从上到下的执行方式并不是唯一的途径,它有两个例外:循环和选择。 你希望你写的程序代码能根据情况的改变而做出不同的响应。在这种方式中,控制流程从程序的这一部分跳转到程序的另一部分。 语句引起这样的跳转被叫做控制语句。 这样的控制由循环和选择组成。
|