→ ken1325:||是指 如果前條件為偽 則回傳為偽 跳出 不進行後條件計算 03/28 19:55
→ ken1325:2. || 就是 如果前為偽,一定會跳下去做後面的條件 03/28 19:55
→ ken1325:你怎麼前後寫的不一樣 03/28 19:55
一個是他們認為 一個是我後面的補充
話說這種問題一翻兩瞪眼 寫個程式跑看看就知道了
結果我同事看到程式結果的反應 出乎預料 用了台語說 怎麼會這樣....
我也想說怎麼會這樣 這麼扯的觀念誰教的阿
※ 編輯: erspicu 來自: 219.70.5.247 (03/28 19:58)
※ 編輯: erspicu 來自: 219.70.5.247 (03/28 20:00)
推 northsoft:他們認為的那部份....他們自己不覺得很困惑嗎... 03/28 20:01
→ northsoft:而且 bitwise放在條件式, 編譯器會靠北吧 03/28 20:03
→ erspicu:有些語言有些編譯器是可以阿...但是真的不建議 03/28 20:04
→ dSnAil:||是logical OR,然後編譯器會做Short-circuit evaluation 03/28 20:31
→ dSnAil:所以如果前面的運算式出來是 false 的話就會直接跳出...... 03/28 20:32
→ dSnAil:如果習慣用的語言沒有Short-circuit evaluation,可能就不 03/28 20:33
→ dSnAil:知道會有這種現象吧,除非自己有 try 過 03/28 20:33
→ erspicu:問題就是 實際寫程式範例證明了阿 03/28 20:45
System.out.println (false||true);
印出結果就是true
※ 編輯: erspicu 來自: 219.70.5.247 (03/28 20:48)
推 LaPass:那是位元運算.... = = 03/28 20:47
推 LaPass:而且.... | 跟 || 在一般狀況下,不會影響判斷結果吧? 03/28 20:50
→ LaPass:不管是 false|true 或是 false||true 判斷出來的結果應該會 03/28 20:51
→ LaPass:一樣吧? 03/28 20:51
本來就一樣阿 有什麼疑問嗎?
我同事就是認為 false||true -> false
false|true -> true
orz..
※ 編輯: erspicu 來自: 219.70.5.247 (03/28 20:53)
推 LaPass:靠.... 這也太扯 = = 03/28 20:54
推 EJB:槍斃算了XDDDDDDDDDDDDD 03/28 21:03
推 codemonkey:這個好像叫做...短路運算 03/28 21:25
推 dSnAil:現在才發現我推錯 orz 是 true 不是 false 03/28 21:27
推 kunchung:老實講很多人,真的用不到 & 或 | 03/28 22:01
→ fatb:碰ic才用得到吧 03/28 22:21
推 viable:這國中數學有教的東西 怎麼還有人不會?太誇張了吧! 03/28 22:50
推 northsoft:也許你同事是高手,重載運算子,自己用起來爽 03/28 23:50
推 popoblue:沒作過 embedded 所以不知道 bitwise 吧... 03/29 00:01
→ howshou:高手應該回答:應情況而異才對。不同地方 | 真的有不同用途 03/29 00:35
推 KiroKu:我覺得是不常用沒想清楚吧 寫高階很少用到| 幾乎都是|| 03/29 02:25
推 shadow0326:寫高階也不會少用吧,先不要說自定義的flag/mask,光是 03/29 11:04
→ shadow0326:一些標準函式例如open就有用到|啊... 03/29 11:04
→ andymai:國中數學?我記得我那年代的國中根本沒教到true、false... 03/29 12:59
推 klit5566:|比較少自己弄 也可以用在條件判斷 就0.1.2.4.8.. 用加的 03/30 13:31
推 a1e:Java好久沒碰了,但「or」不是兩個都false才會傳false? 03/30 22:46
推 globekjller:這我國小已經交過了 03/31 21:08
→ andymai:請問樓上幾年次?唸哪間國小?我小六才剛看到et3... 03/31 22:17
→ feeya:你的同事沒有錯 是你自己誤導自己 04/01 09:49