逻辑运算符(&&,| |)

逻辑运算符(&&,| |)


操作是的Ç+ +运算符不执行布尔操作,有只有一个操作数,位于其权利,和唯一,它确实是逆是它的价值,生产假如果真实,真实的,如果其操作数其操作数为false。   基本上,它返回布尔值,评价其操作数相反。   例如:  

 1 
 2 
 3 
 4 
 
 !(5 == 5) // evaluates to false because the expression at its right (5 == 5) is true. !(6 <= 4) // evaluates to true because (6 <= 4) would be false. ! true // evaluates to false ! false // evaluates to true. 


逻辑运算符&&| |是用来计算两个表达式时,得到一个单一的关系结果。   运算符&&与布尔逻辑运算。   此操作的结果真实的,如果两个操作数是真实的,否则返回false。   下面的面板显示计算表达式的运算符&& A && B的结果:  

&&运算符
bA && B

运算符| |与布尔逻辑运算。   操作结果真实的,如果是真实的,因而是虚假的,只有当两个操作数都是假的,自己任一两个操作数。   以下是可能的结果, 一个| |乙:  

| |运算符
bA | |B̶

例如:  

 1 
 2 
 
 ( (5 == 5) && (3 > 6) ) // evaluates to false ( true && false ). ( (5 == 5) || (3 > 6) ) // evaluates to true ( true || false ). 


使用逻辑运算符时,C + +只计算从左至右拿出合并关系的结果,而忽略其余什么是必要的。   因此,在这最后的例子((5 == 5)| |(3> 6)),C + +会先评估5 == 5是否是真实的,如果是这样,它永远不会检查是否是真还是假3> 6 。   这被称为短路的评价,并为这些运营商这样的作品:  

操作者短路
&&如果左侧表达的是假的,综合作用的结果是假的(右侧表达未评估)。
| |如果左侧的表达是真实的,综合作用的结果是“真”(右侧表达不评估)。

这主要是重要的,当右侧的表达式有副作用,如改变值:  

 
 if ((i<10)&&(++i<n)) { /*...*/ } 


这个合并条件表达式增加i的一个,但只有当条件&&左侧是真实的,否则右手永远不会计算表达式(+ + <N)。  

条件运算符(?)


条件运算符计算表达式返回一个值,如果该表达式是真实的,不同的,如果表达式计算为false。   其格式为:  

条件吗?   RESULT1:RESULT2名  

如果条件为真时,表达式将返回RESULT1,如果它是不是会返回结果2。  

 1 
 2 
 3 
 4 
 
 7==5 ? 4 : 3 // returns 3, since 7 is not equal to 5. 7==5+2 ? 4 : 3 // returns 4, since 7 is equal to 5+2. 5>3 ? a : b // returns the value of a, since 5 is greater than 3. a>b ? a : b // returns whichever is greater, a or b. 


 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 
 // conditional operator #include <iostream> using namespace std; int main () { int a,b,c; a=2; b=7; c = (a>b) ? a : b; cout << c; return 0; } 
  7 


这个例子中是2b7,所以该表达式评估(A> B)不正确的,因此指定问号后的第一个值被丢弃赞成第二个值(一个冒号后的) B,7。  

逗号运算符(,)

是用来分隔两个或多个表达式预计只有一个表达式中包含逗号(,)。   当设定的表达式有一个值进行评估,只有被认为是最右边的表达式。  

例如,下面的代码:  

 
 a = (b=3, b+2); 


会先分配到b的值为3,然后分配B +2变量 a。   所以,在年底, 变量 a将包含变量 b的值为5,而将包含价值3。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值