栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

小白学C++ L8关系与逻辑表达式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小白学C++ L8关系与逻辑表达式

关系表达式
  • 在C++中,关系运算符用于判断表达式之间的大小关系,对两边的值进行6种情况的判断:

    • 大于>和大于等于>=运算符
    • 小于<和小于等于<=运算符
    • 相等==和不相等!=运算符
  • 关系运算符中,表达式结果的类型可以是字符或者数字,但不可以是字符串

  • 关系表达式返回一个布尔值:成立为1(true)代表真,不成立为0(false)代表假

  • 浮点数一般不会用 == 或者 != 来判断,因为可能产生表示误差。

    • 比较两个浮点数是否相等,需要看两个数的差值是否小于一定的精度,比如:对于浮点数a和b,如果(a - b) < 1e-6 如果值为真,就判断两个浮点数相等。
逻辑表达式

关系表达式可以判断某个条件是否成立,逻辑表达式中包含了多个关系表达式,可以对多个条件进行判断

  • C++使用逻辑运算符连接多个关系表达式,从而构建逻辑表达式。
  • 常用的逻辑运算符有以下三种:
    • 逻辑AND运算符&&:判断两个关系表达式是否同时成立
    • 逻辑OR运算符||:判断两个关系表达式是否至少有一个成立
    • 逻辑NOT运算符!:判断某个关系表达式是否不成立

假设p1和p2是关系表达式的返回结果,逻辑运算符的运算规则可以参考下表:

运算符优先级

至此,我们已经学习的运算符如下:

  • 算术运算符(+ - * / % ++ --等)
  • 赋值运算符(=等)
  • 位运算符(<< >>等)
  • 关系运算符(> >= < <= == !=等)
  • 逻辑运算符(&& || !等)

运算符优先顺序:赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符。
对于这些常用的运算符,按照计算优先级从高到低(左边更高,右边更低)进行排列,可以得到如下表格:

Tips:对于一个表达式,虽然可以通过计算优先级省略掉括号,但为了代码的可读性,我们在编写时一般都选择把括号加上。

练习1:输入年份,判断是否为闰年

#include 
#include 
using namespace std;
int main() {
    int year;
    cin >> year;
    bool is_leap_year;
    
    // TODO 请用一个表达式来判断 year 是否为闰年
    // 是400的倍数;或者是4的倍数并且不是100的倍数
    is_leap_year = (year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0));
    
    // 也可以这么写:
    // is_leap_year = !(year % 400) || (!(year % 4) && (year % 100));
    
    cout << is_leap_year << endl;
    return 0;
}

练习2:下列运算输出结果为:

int a, b, c;
a = b = c = 1;
cout << a-- || --b && ++c;

输出:1

表达式cout << a-- || --b && ++c;中,a--先计算逻辑表达式,再改变变量a的数值;--b与++c先改变变量b与c的数值,再计算逻辑表达式:

  • 根据运算优先级,先执行&&运算:--b && ++c即为0 && 2,得到0;
  • 再进行|| 运算:a-- || 0即为1 || 0,得到1,故输出表达式值为1。
  • (变量a逻辑运算结束后,值改变为0。)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983605.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号