看板 Soft_Job 關於我們 聯絡資訊
※ 引述《erspicu (.)》之銘言: : |是指 不管前條件為真或是偽 都會進行後條件的計算 : => true | false -> true : false | true -> false : ||是指 如果前條件為偽 則回傳為偽 跳出 不進行後條件計算 : 如果前條件為真 則進行後條件計算 : => false || true -> false : true || false -> false : true || true -> true : 以上是他們認為 : 我的媽...夠扯的 兩個人工作經驗都非常久 : 而且都擔任過知名公司的RD : 1. | 是bitwise的計算子 ,通常很少用在邏輯判斷用途上, : 把|用在邏輯判斷上也不是說不行,但是得在特定條件下才能使用, : 而且得小心使用,不熟悉語言和編譯器特性,容易發生發預期情況. : (話說也不一定是每種語言布林底層其實就是0.1數值,這樣做很危險) 我不了解Java,但不以這二種語法身為Java的運算子,也不以是哪一種Java的執行器 來看,而純粹以這個符號的意思來講: 如你所講, | 是 bitwise or. Bitwise or 什麼意思? 就是要把二個數用二進位 位元的處理方式求值. 如果這時候short-circuit evaluation進來,意思反而亂了. 意思會變成在某些時候,你弄個 A | B, A B 都是其他比較複雜的expression, short-circuit evaluation的觀念會讓你認為 B 不會參與這個 bitwise or 運算, 而是直接被忽略掉. 可是這是二進位數計算ㄋㄟ,是你說忽略就忽略嗎? 我覺得不是他們不知道 bitwise or, 應該是知前也知後. 反而有可能是你見樹不見林唷. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.108.204
erspicu:請搞清楚 || 跟 && 的差異 03/28 20:50
erspicu:如果 || 前為真的 是可以省略後算 但是 03/28 20:51
erspicu:前為偽 直接回傳為偽 那根本沒邏輯可言 03/28 20:52
yauhh:錯,short-circuit evaluation本來就是有邏輯的. 03/28 20:53
erspicu:||就是或者的意思 意思是任一為真 則為真 03/28 20:55
yauhh:如果要說邏輯值,看一個邏輯算符,我們本來就只關心整個結果, 03/28 20:55
yauhh:而不是後者有沒有算得到. 03/28 20:56
erspicu:不管前面是真假 只要前後有一為真 就為真 03/28 20:56
icecastleo:short-circuit 的 && 是跳false || 是跳 true 03/28 20:56
icecastleo:並不是你說的那樣 03/28 20:56
erspicu:如果 || 前面為偽 回傳為偽 忽略後面的話 根本就錯了 03/28 20:57
yauhh:當然資深RD他們說false | true -> false這麼扯的東西, 03/28 20:57
yauhh:你只要給她一小段碼,甩甩巴掌就好了,犯不著扯開大話題 03/28 20:58
yauhh:為什麼||前面false,忽略後面,就錯? 03/28 20:59
yauhh:喔,上句我講錯,||前面是true,&&前面是false,就可以忽略後面 03/28 21:01
erspicu:樓上 開竅了阿 發現問題了阿 03/28 21:02
yauhh:不是啊,我|| &&理解本來就沒錯啊 03/28 21:08
yauhh:但不管 || && | &,後面有忽略沒忽略,以邏輯運算來講並不重要 03/28 21:09
yauhh:但我講的是,以位元運算來講,如果 | 忽略後面,你就倒楣了. 03/28 21:10
erspicu:邏輯運算 有忽略沒忽略還是很重要 只是有些情況下 03/28 21:12
erspicu:忽略後算並不影響到結果而已 但是並不是任何情況都可忽略 03/28 21:12
yauhh:邏輯運算怎麼會說有忽略沒忽略很重要呢? 03/28 21:14
yauhh:可以忽略的部份,我沒忽略,會死嗎? 不會嘛!什麼叫作邏輯運算. 03/28 21:14
erspicu:||的狀況下 如果前者為偽 你直接回傳偽不做後算看看 03/28 21:15
yauhh:||的狀況前者為false,所以後者不可以忽略,而且我也沒忽略. 03/28 21:16
yauhh:沒錯啊! 03/28 21:16
erspicu:那你還說忽略或是不忽略不重要? 03/28 21:17
yauhh:我說的是,可以忽略的,不管我忽略不忽略都沒關係. 不要跳針. 03/28 21:18
yauhh:而且short-circuit eval可沒有把不可忽略的忽略掉,你懂吧? 03/28 21:19
KiroKu:好的程式應該有無SCE結果應該一樣 我唯一看過結果會不一樣 03/29 02:28
KiroKu:是考試題目 在後面做assign 03/29 02:28