• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++短路求值(逻辑与、逻辑或)实例

C++短路求值(逻辑与、逻辑或)实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++中逻辑运算符,c++逻辑运算符,表达式求值c++,中缀表达式求值c++,c++游戏开发实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C++短路求值(逻辑与、逻辑或),分享给大家供大家参考。具体方法分析如下:

1、逻辑或的短路

首先看如下代码:

#include <iostream>
using namespace std;
int main()
{
  int a = 1;
  cout << "a = " << a <<endl;
  true || (a=0);
  cout << "a = " << a <<endl;
}

</div>

运行结果如下:

a = 1

a = 1

</div>

逻辑或的表现形式如下:

expression1 || exexpression2

这里用到了逻辑或,由于逻辑或的短路,expression1为true,则后面的expression2(即:(a=0) )不再求值,整个表达式的结果为true,所以a的值仍为1,没有改变。

2、逻辑与的短路

首先看如下代码:

#include <iostream>
using namespace std;
int main()
{
  int a = 1;
  cout << "a = " << a <<endl;
  false && (a=3);
  cout << "a = " << a <<endl;
}

</div>

运行结果如下:

a=1

a=1

</div>

逻辑与的表现形式如下:

expression1 && exexpression2

上述代码中用到了逻辑与,由于逻辑与的短路,expression1为false,则后面的expression2不再求值,整个的结果为false,所以a的值没有改变。

3、应用举例

这里以CSDN上的一个帖子为例(http://topic.csdn.net/u/20121011/10/c7e0a805-b4e2-44db-9d71-455f5f851240.html ):

不用if语句,不用汇编,怎么使得两数之积总是小于等于255?

大家看过帖子会发现有很多方法,比如最简单的条件表达式:

result = ((a*b) > 255) ? 255 : a*b;

</div>

这个是最先被人提出的,但好像楼主不认同,那就试下以下两种方式:

用逻辑或的短路:

bool tmp = ((result = a*b) < 255) || (result=255);

</div>

用逻辑与的短路:

bool tmp = ((result = a*b) >= 255) && (result=255);

</div>

完整代码如下:

#include <iostream>
using namespace std;
int main()
{
  int a,b,result;
  while (true)
  {
    cin>>a>>b;
//    result = ((a*b) > 255) ? 255 : a*b;
//    bool tmp = ((result = a*b) < 255) || (result=255);
    bool tmp = ((result = a*b) >= 255) && (result=255);
    cout<<result<<endl;
  }
}

</div>

运行效果如下:

希望本文所述对大家的C++程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 讲解C++编程中Address-of运算符&的作用及用法
  • C++短路求值(逻辑与、逻辑或)实例

相关文章

  • 2017-05-28求子数组最大和的解决方法详解
  • 2017-05-28C语言实现找出二叉树中某个值的所有路径的方法
  • 2017-05-28C语言将24小时制转换为12小时制的方法
  • 2017-05-28浅析int*p[ ]与int(*p)[ ]的区别
  • 2017-05-28深入分析父子线程、进程终止顺序不同产生的结果
  • 2017-05-28C语言实现静态链表的方法
  • 2017-05-28C语言中的字符(char)详细讲解
  • 2017-05-28对C语言中sizeof细节的三点分析介绍
  • 2017-05-28C++实现简单的图书管理系统
  • 2017-05-28C++中关键字Struct和Class的区别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C/C++中退出线程的四种解决方法
    • linux下基于C语言的信号编程实例
    • C++中memcpy和memmove的区别总结
    • C语言编写银行打印程序实例参考
    • 用C++实现,将一句话里的单词进行倒置的方法详解
    • C语言指针是什么?1分钟彻底理解C语言指针的概念
    • C++基础入门教程(一):基础知识大杂烩
    • 结构体类型数据作为函数参数(三种方法)
    • C++虚函数表实例分析
    • 浅谈C/C++ 语言中的表达式求值

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有