Re: [問題] && 和 || 有什麼差別?
※ 引述《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
09/26 19:09, 2F
→
09/26 21:17, , 3F
09/26 21:17, 3F
推
09/26 21:55, , 4F
09/26 21:55, 4F
→
09/26 22:40, , 5F
09/26 22:40, 5F
→
09/26 22:40, , 6F
09/26 22:40, 6F
→
09/26 22:41, , 7F
09/26 22:41, 7F
推
09/27 09:28, , 8F
09/27 09:28, 8F
推
09/27 11:10, , 9F
09/27 11:10, 9F
→
09/30 17:38, , 10F
09/30 17:38, 10F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):