作者yauhh (喲)
看板Programming
標題Re: [問題] 多邏輯判斷的if合併或拆開對效能有影響嗎?
時間Thu May 26 00:07:59 2011
※ 引述《hirabbitt (兔子)》之銘言:
: 例如說
: if(邏輯1 && 邏輯2 && 邏輯3 && 邏輯4){
: //要做的事
: }
: 和這樣
: if(邏輯1){
: if(邏輯2){
: if(邏輯3){
: if(邏輯4){
: //要做的事
: }
: }
: }
: }
: 有哪個明顯的比較好嗎?
: 謝謝
第一種寫法做了二件事: 第一是將合格的case放在一起, 第二則是這些合格的case
順序被模糊掉.
優於第二種寫法是,當你要拉出 else case 時,在第二種寫法要知道把 else case
擺對層次及位置 (想想看, (邏輯1 && !邏輯2 && 邏輯3 && !邏輯4) 擺在什麼位置,
(邏輯1 && 邏輯2 && !邏輯3 && !邏輯4) 又擺在什麼位置),
但是第一種寫法只告訴你,現在只有四種情況皆在的範圍定義出來,如果你要拉出
else case, 只要範圍不屬於前四種情況的範圍,都可以從同樣這個 if 層次往下
拉出 else case.
第一種寫法在重新整理程式時,比第二種寫法容易.
--
/yau
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.229.22
1F:推 yoco315:大師,人家問的是效能,又天外飛來了 XD118.160.111.115 05/26 00:57
2F:→ yauhh:原po哪句話問到效能? 眼睛糊到______? 59.112.229.22 05/26 01:03
3F:→ awert:標題 114.35.186.241 05/26 01:04
4F:→ yauhh:喔,標題,ok 59.112.229.22 05/26 01:04
5F:→ yauhh:那我就不知道原po在想什麼了,要講這一小句 59.112.229.22 05/26 01:05
6F:→ yauhh:的效能,我不覺得什麼好回答. 59.112.229.22 05/26 01:05
7F:推 chmod:看compiler怎麼編譯吧 140.135.27.88 05/26 01:39
8F:→ yauhh:沒錯,語言只是語言而已,效能要看編譯執行 59.112.229.22 05/26 02:02
9F:推 yoco315:眼睛糊到______? 118.160.108.49 05/26 09:15
10F:→ yoco315:正常, 你沒在看人講什麼也不是第一天 XD 118.160.108.49 05/26 09:16
11F:→ hirabbitt:不過這一篇也很有意思 感謝 163.13.127.91 05/26 09:35
12F:→ yauhh:那也完全不干你的事,滾開吧,你嗆過的人218.160.211.145 05/26 21:33
13F:→ yauhh:沒有一個人在鳥你. 只會上BBS嗆人.218.160.211.145 05/26 21:34
14F:→ yauhh:基本上,在此我發現了自己的錯誤,我已經改正.218.160.211.145 05/26 22:28
15F:→ yauhh:所以你在怎麼嗆我,我認為我問心無愧.218.160.211.145 05/26 22:29
16F:→ yauhh:那我就覺得有趣了,你打算再待在網路嗆幾年?218.160.211.145 05/26 22:29
17F:→ yauhh:我很期待看中年的你仍在到處向人開刀,有趣了218.160.211.145 05/26 22:30
18F:→ kuso0516:戰力驚人 122.125.36.13 05/26 23:17
19F:→ yauhh:一切都是自找的,你可以說我找罵挨,我也可以218.160.211.145 05/26 23:30
20F:→ yauhh:說你找戰戰. 但我覺得只愛負面的東西很無聊.218.160.211.145 05/26 23:31