[問題] 關於邏輯運算元問題

看板C_and_CPP作者 (wodada)時間14年前 (2011/04/21 03:04), 編輯推噓6(6026)
留言32則, 7人參與, 最新討論串1/2 (看更多)
小弟最近在練習一個小程式,發現有很多基礎事實上並沒有練的很好 程式碼如下:http://codepad.org/79ewO9nM 出來的答案分別是14和16 最後一個答案16是很直觀的,可是現在的問題是,為何第一個答案是14呢? 請各位高手指點迷津,謝謝! PS:本程式用VC++ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.181.105

04/21 03:08, , 1F
可讀性趨於0...
04/21 03:08, 1F

04/21 03:10, , 2F
c += 1 這件事永遠是 正確的(1) 所以當然不等於0嚕
04/21 03:10, 2F

04/21 03:10, , 3F
且 c < d啊 ( 2 < 4)
04/21 03:10, 3F

04/21 03:11, , 4F
所我 a + c = 7 進去後,印出來是 14
04/21 03:11, 4F

04/21 03:14, , 5F
提外話 那有什麼運算結果, 回傳是 假(0)呢
04/21 03:14, 5F

04/21 09:07, , 6F
所謂可讀性,當他已經是寫邏輯式時,就要看你有沒有閱讀邏輯式
04/21 09:07, 6F

04/21 09:08, , 7F
的能力. 我認為這個程式並沒有欠缺可讀性.
04/21 09:08, 7F

04/21 09:09, , 8F
第一式是因為!(a>b)所以右邊C+=1有做;而第二式則是因為a>b,
04/21 09:09, 8F

04/21 09:10, , 9F
所以右邊C+=1並沒有做. 我有點納悶原po你說第二式很"直觀"
04/21 09:10, 9F

04/21 09:10, , 10F
但卻不理解第一式???
04/21 09:10, 10F

04/21 09:33, , 11F
可讀性最差的就是這種, 竟然有人覺得直觀 @@
04/21 09:33, 11F

04/21 09:34, , 12F
他明明就是 (c+=(1!=0)) 如果寫成 c+=1!=1 就更糊塗了 XD
04/21 09:34, 12F

04/21 09:38, , 13F
錯,你所謂可讀性只是站在程序式程式流程思考,那只是字面上的
04/21 09:38, 13F

04/21 09:39, , 14F
而且重點似乎只在挑c+=1的毛病而已,但這一點都不影響邏輯式
04/21 09:39, 14F

04/21 09:40, , 15F
本身的可讀性,因為c+=1永遠為真,((c+=1)!=0)也恆真.
04/21 09:40, 15F

04/21 09:41, , 16F
在判斷式裡面塞了一個會改變值的stmt還說可讀性不差?
04/21 09:41, 16F

04/21 09:42, , 17F
那個值改變根本不影響邏輯的意思啊,你就不能忽略細節嗎?
04/21 09:42, 17F

04/21 09:42, , 18F
人是有腦袋的,不要盲目追求一個片面的可讀性.
04/21 09:42, 18F

04/21 09:42, , 19F
我要解這個邏輯式看到這裡就卡住了 =_=
04/21 09:42, 19F

04/21 09:42, , 20F
對不起我腦袋不好 orz
04/21 09:42, 20F

04/21 09:46, , 21F
再說在一個小地方爭可讀性,真是見樹不見林,不是嗎?
04/21 09:46, 21F

04/21 09:47, , 22F
前面我說錯了,c+=1為真的前提是c!=-1
04/21 09:47, 22F

04/21 10:19, , 23F
不是腦袋不好的關係,應該說你沒有認清運算子的重要性
04/21 10:19, 23F

04/21 10:19, , 24F
一本完整的書,應該都會有運算子表格,去看看吧
04/21 10:19, 24F

04/21 10:47, , 25F
沒搞清楚 operator precedence ? 會寫出這種難以一眼看懂
04/21 10:47, 25F

04/21 10:47, , 26F
的程式, 就是缺乏可讀性了
04/21 10:47, 26F

04/21 11:02, , 27F
XD 還要 trace 才能知道功能就是沒有可讀性
04/21 11:02, 27F

04/21 11:05, , 28F
他不懂第一式的原因可能跟 y 說的不一樣
04/21 11:05, 28F

04/21 11:05, , 29F
如果他認為 c+= 1 不會改變 c 的值, 那確實第一式就很怪
04/21 11:05, 29F

04/21 12:36, , 30F
八卦是第二個只會判斷 a > b ,後面統統不做,所以16
04/21 12:36, 30F

04/21 12:37, , 31F
這不就是 bad readability 嗎 XDD
04/21 12:37, 31F

04/21 13:36, , 32F
還弄個防雷頁 XD 你是想打什麼?
04/21 13:36, 32F
文章代碼(AID): #1DhovPI0 (C_and_CPP)
文章代碼(AID): #1DhovPI0 (C_and_CPP)