C++ Prmer 笔记十六 逻辑与关系运算符

C++ Primer 笔记十六 逻辑与关系运算符

作用类型 返回值 求值结果
逻辑运算符 任意能转换成布尔类型的类型 布尔类型
( 0:假; 
1:真)
右值
关系运算符 算术类型或指针类型
逻辑运算符与关系运算符
优先级 结合率 运算符 功能 用法
|
|
|
|
|
|
|
! 逻辑非 !expr



<
<=
>
>=
小于
小于等于
大于
大于等于
expr < expr
expr <= expr
expr > expr
expr >= expr

==
!=
相等
不相等
expr == expr
expr != expr
&& 逻辑与 expr && expr
|| 逻辑或 expr || expr
 

逻辑运算符

  • 逻辑与(&&):两个运算对象都为真时结果为真。
  • 逻辑或(||):两个运算对象都为假时结果为假。
  • 逻辑非( ! ):将运算对象的值取反后返回。

短路求值:

  • 逻辑与(&&):当且仅当左侧运算对象为真时才对右侧运算对象求值。
  • 逻辑或(||):当且仅当左侧运算对象为假时才对右侧运算对象求值。

在这里插入图片描述

  1. 输出 vector 对象 text 中的 string 对象的内容,在遇到空字符串或以句号结束的字符串时换行,否则用空格隔开。
for (const auto &s :text) {
	cout << s;
	
	// 先检查 s 是否非空,只有 s 非空时才会用下标运算符去访问
	if  (s.empty() || s[s.size()-1] == '.')
		cout << endl;
	else 
		cout << " ";
  1. 打印 vector 对象 vec 的首元素(如果有的话),vector 中的元素类型为 int 。
if (!vec.empty()) 
	cout << vec[0];

 
关系运算符

  1. 关系运算符连用产生的意外:
// i 和 j 比较返回布尔值,k 其实是和 0 或者 1 比较
if (i < j < k )
  1. 测试一个算术对象或指针对象的真值,直接将其作为 if 语句的条件:
if (val) { /* .. */ }
if (!val) { /* .. */ }

不要直接与 ture 进行比较,若 val 不是布尔值,则比较之前会把 true 转换成 val 的类型:

// 不建议的行为
if (val == true) { /*.. */ }

// 如果想判断 val 的值是否为 1,直接与 1 进行比较
if (val == 1) { /* .. */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值