【信息学奥赛】【C++入门】4-逻辑运算符

逻辑运算符,也是用来表示布尔值的运算符。其运算的符号两边的关系的真假。

常见的有三种分别是:

  • 与   用&&表示
  • 或   用  ||  表示
  • 非   用  ! 表示,我们在前面的关系运算符中其实已经见到了,不等于用 !=

1)与运算,当且仅当两边都为真的时候整个式子的值才为真

例如

① 2>1 && 3>2 。  下面我们列表分析,用1表示真,0表示假。

左边           右边             最终结果

1                 1                     1                         

②2<1 && 3>2

左边           右边             最终结果

0                  1                    0        

③2>1 && 3<2

左边           右边             最终结果

1                  0                   0    

2<1 && 3<2

左边           右边             最终结果

0                  0                    0    

观察以上我们把列表统一到一起:

左边右边与 &&,结果
111
010
100
000

 如果要在左边和右边中间加一个数学符号等于右边话,我们发现,填上一个乘号使列表成立,

所以我们有时候为了助记也可以把与运算看成是逻辑乘法。    

2)或运算,只要两边有一个为真,结果为真。

我们直接用上面的列表

左边右边或 ||,结果
111
011
101
000

如果要在左边和右边中间加一个数学符号等于右边的话,我们发现,填上一个+号勉强使列表成立,只有第一个不太符1+1=2,

但是我们前面讲过非零为真2也为真,所以+号也可以说成立

所以我们有时候为了助记也可以把与运算看成是逻辑加法。    

 3)非运算,简单的理解就是取反,原来是真的非之后就是假的

      例如:!(2<3)的结果就为真

练习:

我们知道闰年的定义

非整百年能被4整除的年份,整百年能被400整除的年份为闰年

现在用y表示年号,让你写一个式子来判断一个年号是不是闰年。

在这里有一个特殊的年号是1900年它不是闰年,我们一会可以把它代到我们的式子里面验证一下。

首先分析一下句子里各个词是什么关系

首先,都好前后是一个只要满足一个就成立的条件,所以是或的关系,可以用符号表示如下:

非整百年能被4整除的年份  ||  整百年能被400整除的年份为闰年

然后再看各个半句,都是必须同时满足的情况,那么就是与的关系,进一步深化我们的句子:

非整百年  &&  能被4整除的年份  ||  整百年  &&  能被400整除的年份为闰年

然后,将上面的句子翻译成代码如下

y%100!=0 && y%4==0 || y%100==0 && y%400 ==0

仔细观察上面的式子,我们发现后半部分有点重复,能被400整除的数肯定能被100整除,所以进一步简化:

y%100!=0 && y%4==0 || y%400 ==0

我们将1900代入到这个式子里就会得到如下算式

0 && 1 || 0

这个式子整体为假,所以1900年补充闰年。

在这里要讲一下,与的短路机制。与运算,只要式子里面计算到一个为假,整个式子的结果都为假(0乘以任何数都得0),那么后面的所有式子都不计算了。

上面的那个式子里其实 计算到第一个y%100!=0就发现为假了,后面的y%4==0 || y%400 ==0都不计算(判断)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值