“逻辑与”规则的最新认识
2013-03-21 10:40
106 查看
在原本的印象里,逻辑与“&&”的两个操作数是不考虑顺序的,C++ Primer中明确指出其实不然,两个操作数有顺序而且从逻辑解析的角度来讲,这个顺序是必须的,下面是C++ Primer中摘录的几句话:
“逻辑与和逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。只有在仅靠左操作数的值无法确定该逻辑表达式的结果时, 才会求解其右操作数。 我们常常称这种求值策略为“短路求值(short-circuit evaluation)”。”
“在这个例子中,while 循环判断了两个条件。首先检查 it 是否已经到达 string 类型对象的结尾,如果不是,则 it 指向 s 中的一个字符。只有当该检验条件成立时,系统才会计算逻辑与操作符的右操作数,即在保证 it 确实指向一个真正的字符之后,才检查该字符是否为空格。如果遇到空格,或者 s 中没有空格而已经到达 s 的结尾时,循环结束。”
高亮显示的那句话表明,逻辑与对操作数的操作是必要顺序的
“逻辑与和逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。只有在仅靠左操作数的值无法确定该逻辑表达式的结果时, 才会求解其右操作数。 我们常常称这种求值策略为“短路求值(short-circuit evaluation)”。”
string s("Expressions in C++ are composed..."); string::iterator it = s.begin(); // convert first word in s to uppercase while (it != s.end() && !isspace(*it)) { *it = toupper(*it); // toupper covered in section 3.2.4 (p. 88) ++it; }
“在这个例子中,while 循环判断了两个条件。首先检查 it 是否已经到达 string 类型对象的结尾,如果不是,则 it 指向 s 中的一个字符。只有当该检验条件成立时,系统才会计算逻辑与操作符的右操作数,即在保证 it 确实指向一个真正的字符之后,才检查该字符是否为空格。如果遇到空格,或者 s 中没有空格而已经到达 s 的结尾时,循环结束。”
高亮显示的那句话表明,逻辑与对操作数的操作是必要顺序的
相关文章推荐
- 使用 Drools 规则引擎实现业务逻辑
- android黑科技——完美解决界面逻辑的数据框架DataBinding(最新)的使用(二)
- 对C++中类型兼容规则的认识
- 一步步学习微软InfoPath2010和SP2010--第五章节--添加逻辑和规则到表单(6)--使用规则创建多视图样式向导表单
- 使用 Drools 规则引擎实现业务逻辑
- 使用 Drools 规则引擎实现业务逻辑
- 一步步学习微软InfoPath2010和SP2010--第五章节--添加逻辑和规则到表单(6)--使用规则创建多视图样式向导表单
- 使用 Drools 规则引擎实现业务逻辑
- 最新的网络赚钱认识分享
- 最新实战讲解.htaccess文件rewrite规则
- 淘宝网不允许出售虚拟产品了,网店/网络服务/软件最新调整规则
- 使用 Drools 规则引擎实现业务逻辑
- android黑科技——完美解决界面逻辑的数据框架DataBinding(最新)的使用(一)
- 手机号最新正则匹配规则
- 一步步学习微软InfoPath2010和SP2010--第五章节--添加逻辑和规则到表单(7)--关键点
- 最新办公室政治学:不得不看的20条职场工作法则(写在白纸黑字上的规则是不用看的,潜规则才需要学习)