逻辑运算符:
&& ||
表达式1&&表达式2 :当表达式1、2全为true时,其表达式的结果为true。
表达式1||表达式2 :当表达式1、2有一个为true时,其结果为true。
!表达式 :如果表达式的结果为true,则取反后为false,反之为true。
优先级,与高或低 (&&高||低)
逻辑短路
&&两边的表达式必须为TRUE,它的结果才是TRUE,当有其中一个表达式为FALSE时,结果为FALSE.
int a =10;
int b=5;
bool result=++a>50 && ++b>1;
这时由于(++a>50)这个表达式结果为FALSE,则整个结果为FALSE.后边(++b>1)表达式不再进行运算.
这时a的值为11,但b的值还是5.
同理,上述代码如改为:
int a =10;
int b =5;
bool result=++a>5 ||++b>1;
||两边表达式中其中有一个为TRUE时,整个结果为TRUE.所以,当表达式(++a>5)这个为TRUE时,整个结果为TRUE,后边(++b>1)不再进行运算.
这时a的值为11,但b的值还是5.
逻辑短路
&&两边的表达式必须为TRUE,它的结果才是TRUE,当有其中一个表达式为FALSE时,结果为FALSE.
int a =10;
int b=5;
bool result=++a>50 && ++b>1;
这时由于(++a>50)这个表达式结果为FALSE,则整个结果为FALSE.后边(++b>1)表达式不再进行运算.
这时a的值为11,但b的值还是5.
同理,上述代码如改为:
int a =10;
int b =5;
bool result=++a>5 ||++b>1;
||两边表达式中其中有一个为TRUE时,整个结果为TRUE.所以,当表达式(++a>5)这个为TRUE时,整个结果为TRUE,后边(++b>1)不再进行运算.
这时a的值为11,但b的值还是5.
学员评论
小泡泡老82015-07-13
学习1231232014-11-12
冷圈圈圈圈2014-08-19
好之不如求之2013-08-31
落雅秋齐2013-06-13
wasdw2013-04-30
你感兴趣的课程
扫一扫 关注好知微信