表达式
一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。
示例:
a++; b =10; x = (y*z)/w;
注:分号(;)是表达式的结束符。
算术运算符 Sum ofvalues i = j + 2;
Difference of values i = j - 3;
Changing the operation sign x = - x;
Product of values z = 3 * x;
Division quotient i = j / 5;
Division remainder minutes = time % 60;
Adding 1 to the variable value i++;
Subtracting 1 from the variable value k--;
加减1的运算符不能被嵌套在表达式中 int a=3;
a++; // 可行的表达式
int b=(a++)*3; // 不可行的表达式
赋值运算符
注:将右侧的结果赋值给左侧的变量
将x的值赋值给y y = x;
将x的值加到y上面 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;
得到逻辑非OR的值 y ^= x;
注:一个表达式只能有一个赋值运算符.
关系运算符
用返回0(False)或1(True)来表示两个量之间的关系。 a是否等于b a == b;
a是否不等于b a !=b;
a是否小于b a <b;
a是否大于b a >b;
a是否小于等于b a<= b;
a是否大于等于b a>= b;
真假运算符
否定运算符(!),用来表示真假的反面的结果。
// 如果a不是真的
if(!a)
Print("not 'a'");
逻辑运算符或(||)用来表示两个表达式只要有一个成立即可。
示例: if(xl)
Print("out of range");
逻辑运算符和(&&)用来表示两个表达式要同时成立才行。
示例: if(p!=x&& p>y)
Print("true");
n++;
位逻辑运算符
~ 运算符对操作数执行按位求补操作。
b = ~n;
>> 运算符对操作数执行向右位移操作。 x = x>> y;
<< 运算符对操作数执行向左位移操作。 x = x<< y;
一元 & 运算符返回操作数的地址
为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,其结果才为 true。 b = ((x& y) != 0);
二进制 | 运算符是为整型和 bool 类型预定义的。对于整型,| 对操作数进行按位“或”运算。对于 bool 操作数,| 对操作数进行逻辑“或”计算,也就是说,当且仅当两个操作数均为 false 时,其结果才为 false。 b = x |y;
为整型和 bool 类型预定义了 ^ 二进制操作数。对于整型,^ 计算操作数的按位“异或”。对于 bool 操作数,^ 计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true 时,其结果才为 true。 b = x ^y;
注:位逻辑运算符只作用于Integers类型
其它运算符
索引。定位在数组中i位置的值。 array= 3;
//将3负值到array数组第i位置上
使用x1,x2,...,xn 这样的方法将各种值传送到function中进行运算。
示例: doubleSL=Ask-25*Point;
double TP=Ask+25*Point;
int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,TP,
"My comment",123,0,Red);
优先级规则
下面是从上到下的运算优先规则,优先级高的将先被运算。
()Function call From left to right
[] Array element selection !Negation From left to right
~ Bitwise negation
- Sign changing operation *Multiplication From left to right
/ Division
% Module division +Addition From left to right
- Subtraction <<Left shift From left to right
>> Right shift < Lessthan From left to right
<= Less than or equals
> Greater than
>= Greater than or equals ==Equals From left to right
!= Not equal &Bitwise AND operation From left to right ^Bitwise exclusive OR From left to right |Bitwise OR operation From left to right &&Logical AND From left to right ||Logical OR From left to right =Assignment From right to left
+= Assignment addition
-= Assignment subtraction
*= Assignment multiplication
/= Assignment division
%= Assignment module
>>= Assignment right shift
<<= Assignment left shift
&= Assignment bitwise AND
|= Assignment bitwise OR
^= Assignment exclusive OR , CommaFrom left to right
|