TC中的关系运算符有“>”大于 “<”小于 “>=”大于等于 “<=”小于等于 “==”等于 “!=”不等于
>大于,如果运算符左边值大于右边值,返回真
例如:
int a
a=4
if(a>2)
help.messagebox("a大于2")
endif
<小于,如果运算符左边值小于右边值,返回真
例如:
int a
a=3
if(a<4)
help.messagebox("a小于4")
endif
>=大于等于,如果运算符左边值大于或等于右边值,返回真
例如:
int a
int b
a=3
b=4
if(a>=3)
help.messagebox("a大于等于3")
endif
if(b>=3)
help.messagebox("b大于等于3")
endif
<=大于等于,如果运算符左边值小于或等于右边值,返回真
例如:
int a
int b
a=3
b=4
if(a<=4)
help.messagebox("a小于等于3")
endif
if(b<=4)
help.messagebox("b小于等于3")
endif
==等于,如果运算符两边相等,返回真
例如:
int a
a=3
if(a==3)
help.messagebox("a等于3")
endif
注意: 这里的a等于3所以为真,执行if语句!
!=不等于,如果运算符两边不相等,返回真
例如:
int a
a=3
if(a!=4)
messagebox("a不等于4")
endif
注意: 这里的3不等于4所以为真,执行if语句!
TC中的逻辑运算符有 “&&”逻辑与 “||”逻辑或 “!”逻辑非
当表达式进行“&&”(逻辑与)运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。
例如:
(7<8) && (3==3);
//7小于8返回真,3等于3返回真,两边都为真,返回真
(10<8) && (3==3);
//10小于8返回假,3等于3返回真,一边为假,返回假
当表达式进行“||”(逻辑或)运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。
例如:
(7<8) || (3==3);
//7小于8返回真,3等于3返回真,两边都为真,返回真
(7<8) || (4==3);
//7小于8返回真,4等于3返回假,一边都为真,返回真
(10<8) || (4==3);
//10小于8返回假,4等于3返回假,两边为假,返回假
当表达式进行“!”(逻辑非)运算时,把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
例如:
!(3<2)
//先计算括号里的小于操作符,3小于2返回假,在计算逻辑非操作,返回真
!(3>2)
//先计算括号里的大于操作符,3大于2返回真,在计算逻辑非操作,返回假
注意: 当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。
例如:
a=2,b=1;
a||b-1;
因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
关系运算符和逻辑运算符的优先级都低于算术运算符。例如,5>4+3的计算与5>(4+3)运算符是一样的,即先计算4+3,再执行关系运算。此表达示的结果为 “假”,即,将返回0。
TC中运算符顺序优先级
(最高) () . 自左向右
* / % 自左向右
+ - 自左向右
< <= > >= 自左向右
== != 自左向右
&& 自左向右
(最低) || 自左向右
注意: 优先级代表同一表达式中运算符的运算顺序,从高到低!
例如:
if(((5+5)*4)/2 > 5+5*4/2 && (4==6 || 4!=6))
help.messagebox("最终返回值是真")
else
help.messagebox("最终返回值是假")
endif
//根据运算符顺序优先级先计算 ((5+5)*4)/2 结果为 20,再计算 5+5*4/2 结果为15,再计算20 > 15 返回“真”,接着计算“&&”右边括号里(4==6 || 4!=6),4==6返回“假”,4!=6返回“真”,假||真返回“真”,最后计算 真&&真 返回 “真”。
|