Re: [問題] && 和 || 有什麼差別?

看板Web_Design作者 (LaPass)時間10年前 (2013/09/26 18:44), 編輯推噓5(505)
留言10則, 8人參與, 最新討論串2/2 (看更多)
※ 引述《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

09/26 18:52, , 1F
(抖)
09/26 18:52, 1F

09/26 19:09, , 2F
XDDDDDDDDDDDDDDDDDDDDDDDDD
09/26 19:09, 2F

09/26 21:17, , 3F
寫程式的時候 其實還要考慮 左結合 或右結合...
09/26 21:17, 3F

09/26 21:55, , 4F
XD
09/26 21:55, 4F

09/26 22:40, , 5F
XDDDDDDDDDDDD 話說這其實... 沒發射直接引爆
09/26 22:40, 5F

09/26 22:40, , 6F
根本不能用吧 就是全&&也是原地引爆www
09/26 22:40, 6F

09/26 22:41, , 7F
阿 不對 看錯了XDD 不過這程式一點也不有趣啦www
09/26 22:41, 7F

09/27 09:28, , 8F
BooooooOoooOOOooooooooooooM~~
09/27 09:28, 8F

09/27 11:10, , 9F
這篇寫的太好了 !!!!超生動逼真易懂的比喻 XDDD 謝謝!!
09/27 11:10, 9F

09/30 17:38, , 10F
這種情況用巢狀來寫 就很安全了...
09/30 17:38, 10F
文章代碼(AID): #1IH10hM- (Web_Design)
文章代碼(AID): #1IH10hM- (Web_Design)