作者LaPass (LaPass)
看板Web_Design
标题Re: [问题] && 和 || 有什麽差别?
时间Thu Sep 26 18:44:56 2013
※ 引述《Kuea (奇亚)》之铭言:
: 想请教 && 和 || 有什麽差别呢?
: 假设 x=6 y=3
: && and (x < 10 && y > 1) is true
: || or (x==5 || y==5) is false
: 这个 && = 和
: || = 或
: 我看不出来有什麽明显的差别
: 就是它的前後的算式都是判定正确的,结果就会是true?
: 或者是其中一个对就好了呢?
: 请多指点,感津~ ^○^
举个有趣的例子来讲一下搞错这两个东西有多可怕
假设你是程式设计师,正在写氢弹的引爆条件
引爆条件是这样的:
条件一. 炸弹在敌军领空 (gps定位)
条件二. 被空投 (加速度计判定为自由落体)
条件三. 进行自我电路检查後,一切运作正常
条件四. 引爆开关被按下 (就是,电影中常常出现的红色按钮)
那,你程式可以这样写
if(条件一||条件二||条件三||条件四) 引爆;
if(条件一&&条件二&&条件三&&条件四) 引爆;
刚写好的时候,一切没问题
当程式安装到炸弹上的时候也没问题
甚至,这颗炸弹还会放在仓库里好几年,相安无事
因为两个判断式得到的答案都是 false
所以炸弹不会爆炸
但是,开始打仗,军方准备用炸弹的时候,就会出状况了
举例来说.....
当炸弹还在仓库里,进行电路检查的时候....
条件一. 炸弹在敌军领空 (gps定位)
条件二. 被空投 (加速度计判定为自由落体)
条件三. 进行自我电路检查後,一切运作正常
条件四. 引爆开关被按下 (就是,电影中常常出现的红色按钮)
if(
条件一||条件二||条件三||条件四) 引爆;
if(
条件一&&条件二&&条件三&&条件四) 引爆;
嗯,第一个是false,两边都是,所以继续下一步
if(条件一||
条件二||条件三||条件四) 引爆;
if(条件一&&条件二&&条件三&&条件四) 引爆;
↑这个判断式停掉了,因为用&&时,只要有一个false就不会执行
条件二 false
if(条件一||条件二||
条件三||条件四)
引爆;
条件三 true.....
用 || 时,只要有一个条件成立,就会进行之後的动作
所以,当电路检查没问题的时候.....
这颗氢弹就会把我方的一个城市给炸掉了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.38.71.66
1F:推 s25g5d4:(抖) 09/26 18:52
2F:推 hit1205:XDDDDDDDDDDDDDDDDDDDDDDDDD 09/26 19:09
3F:→ lyforever:写程式的时候 其实还要考虑 左结合 或右结合... 09/26 21:17
4F:推 sing10407:XD 09/26 21:55
5F:→ danny8376:XDDDDDDDDDDDD 话说这其实... 没发射直接引爆 09/26 22:40
6F:→ danny8376:根本不能用吧 就是全&&也是原地引爆www 09/26 22:40
7F:→ danny8376:阿 不对 看错了XDD 不过这程式一点也不有趣啦www 09/26 22:41
8F:推 JYHuang:BooooooOoooOOOooooooooooooM~~ 09/27 09:28
9F:推 Kuea:这篇写的太好了 !!!!超生动逼真易懂的比喻 XDDD 谢谢!! 09/27 11:10
10F:→ cowbaying:这种情况用巢状来写 就很安全了... 09/30 17:38