[計程] && 與 ||運算子的判斷順序與判斷與否

看板b98902HW作者 (時の音の精靈)時間14年前 (2009/10/12 23:59), 編輯推噓25(2501)
留言26則, 26人參與, 最新討論串1/1
and(&&) 與 or(||)運算子的判斷順序與判斷與否 之前看到一些同學在&&||上 有發生一些因為擺放順序而發生的記憶體使用錯誤 就上來發這篇 先談談運算結果 他的運算結果會是 A|B|A && B|A || B ------------------ 0|0| 0 | 0 0|1| 0 | 1 1|0| 0 | 1 1|1| 1 | 1 但是在實際運作上,有一件需要注意的事情, 因為&&與||的計算順序是由左到右 所以A&&B時,電腦會先判斷A 如果A是0,電腦會直接輸出0,而不去對B做判斷 而A||B的話 如果A是1,電腦也會直接輸出1,而不去對B做判斷 以這次作業來說, 有一些同學寫 if(x>=0 && x<n && y>=0 && y<n && map[x][y]){ ... } 會通過測試, 但是一些同學寫 if(map[x][y] && x>=0 && x<n && y>=0 && y<n){ ... } 就使用錯誤的記憶體了。 注意到了嗎? 如果x跟y是不合法的x,y 雖然判斷是裡面map[x][y]會超出陣列 第一種寫法因為前面就會有出現0的情況 所以不會去找map[x][y] 但是第二種寫法因為&&會從左到右判斷 所以第一個判斷就是map[x][y],於是就有可能超出你設定的範圍了 寫的時候要稍微注意一下順序 不過,最保險的方法是分開寫就是了 先判斷合不合法,再判斷裡面的東西 最後補個八卦 &&的運算比||優先 所以在一串&&跟||的判斷式裡面,會先算&&喔 不過不過,保險一點還是用個括號比較保險XD -- Google 時の音の精靈| ████████▕検索検索オプション | 表示設定 ▇▇  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ 搜尋: ⊙ウェブ全体から検索 ○日本語のページを検索 ○蘿莉検索 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.77.105

10/13 00:03, , 1F
推~~
10/13 00:03, 1F

10/13 00:05, , 2F
謝謝姜姜強者的分析讓我獲益良多m(= =)m
10/13 00:05, 2F

10/13 00:07, , 3F
姜神出手 不同凡響XD
10/13 00:07, 3F

10/13 00:09, , 4F
推推推
10/13 00:09, 4F

10/13 00:11, , 5F
真強者就是真強者!!!推
10/13 00:11, 5F

10/13 00:44, , 6F
強者教學文大推!
10/13 00:44, 6F

10/13 00:47, , 7F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 00:47, 7F

10/13 00:51, , 8F
是姜神!!
10/13 00:51, 8F

10/13 01:30, , 9F
推! 好用心
10/13 01:30, 9F

10/13 01:32, , 10F
受益匪淺!!
10/13 01:32, 10F

10/13 01:52, , 11F
推姜神!!m(_ _)m
10/13 01:52, 11F

10/13 02:37, , 12F
感謝姜姜真強者...原來我一直都可以少一層判斷式
10/13 02:37, 12F

10/13 04:06, , 13F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 04:06, 13F

10/13 04:27, , 14F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 04:27, 14F

10/13 08:19, , 15F
謝謝姜江紳士的分析讓我獲益良多m(_ _)m
10/13 08:19, 15F

10/13 08:25, , 16F
所謂的短路評算(Short-circuit evaluation)....
10/13 08:25, 16F

10/13 09:10, , 17F
謝謝糟糕姜姜的分析讓我獲益良多m(_ _)m
10/13 09:10, 17F

10/13 09:17, , 18F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 09:17, 18F

10/13 10:47, , 19F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 10:47, 19F

10/13 12:54, , 20F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 12:54, 20F

10/13 15:22, , 21F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 15:22, 21F

10/13 15:45, , 22F
姜姜姜姜姜姜姜姜姜姜姜姜姜姜姜\(^o^)/
10/13 15:45, 22F

10/13 16:15, , 23F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 16:15, 23F

10/13 16:27, , 24F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 16:27, 24F

10/13 22:58, , 25F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/13 22:58, 25F

10/14 19:56, , 26F
謝謝姜姜強者的分析讓我獲益良多m(_ _)m
10/14 19:56, 26F
文章代碼(AID): #1Aqr9JEG (b98902HW)