【洛谷】洛谷深基学习记录 第三章 分支结构程序设计

知识积累

关系表达式与逻辑表达式

关系表达式

      在C++中常常能见到被括号括起的式子,里面是两个数字或变量被一个符号连接起来,那样的式子一般是关系表达式,中间的符号是关系运算符。只要按照标准格式写,一整个括号和括号里的式子就相当于一个布尔值,若式子成立,则布尔值为1,若不成立,则布尔值为0,准确来说,就是在关系运算符两边放表达式,就会计算这两边的关系,返回1或者0;

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    cout<<(a>b)<<endl;
    cout<<(a<=b)<<endl;
    cout<<(a==b)<<endl;
    cout<<(a!=b)<<endl;
/*  
    double m,n;
    cout<<(fabs(a-b)<1e-6)<<endl;
//浮点数不能直接用==,因为有误差,不会完全相等,
只能说两者的差的绝对值很小,就看作二者相等了。
*/

在比大小问题里,特别需要注意的是,不可以在同一个表达式里同时出现多个大于号或小于号,比如 (a<=b<=c) ,这是不允许的,只能写成 (a<=b&&b<=c)。

       在题目中,关系表达式有时候会很长,这样直接写在cout语句里就显得很麻烦,看起来也很繁琐,所以可以先将关系表达式的布尔值赋给一个整型变量,用 int、char 都可以,但习惯上会定义 bool 型的变量,因为占用字节少,只能表示0和1这两种取值;

#include<iostream>
using namespace std;
int main(){
    int x;
    bool p1,p2;
    p1=x%2==0;//这里将表达式返回的布尔值直接赋给bool型变量p1,不需要加括号;
    p2=x<12;
    cout<<(p1&&p2)<<endl;//cout语句里的表达式就需要加括号;
    return 0;
}

       在一些刁钻的题目里,关系表达式十分复杂,里面包含了各种四则运算符号和关系运算符,但是计算机不是按字面顺序来处理表达式返回布尔值的,计算机的处理会按照特定的顺序进行,也就是遵照一定的优先级,下面表格里的运算符从左到右,优先级从高到低

(   ) * 、  /、 % +   - <、  >、   <=、  >= ==、   !=

逻辑表达式

       在C++中还可以使用一下几种逻辑运算符:

  • 与运算符:&&    判断两个条件是否同时成立;
  • 或运算符:||       判断两个条件是否至少有一个成立;
  • 异或运算符:^    判断两个条件是否刚好一个成立、一个不成立;
  • 非运算符:!      将一个条件取反,若条件返回值是1,则变成0,返回值是0同理;

       在逻辑运算符中,非运算符!的优先级仅次于括号,与运算符&&的优先级高于或运算符||(没有括号掺和的情况下,先处理&&再处理||),或运算

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值