作者hirabbitt (兔子)
看板Programming
標題[問題] 多邏輯判斷的if合併或拆開對效能有影響嗎?
時間Wed May 25 06:36:29 2011
例如說
if(邏輯1 && 邏輯2 && 邏輯3 && 邏輯4){
//要做的事
}
和這樣
if(邏輯1){
if(邏輯2){
if(邏輯3){
if(邏輯4){
//要做的事
}
}
}
}
有哪個明顯的比較好嗎?
謝謝
--
◤ __ \__◣
◢◤◢◤ ψhirabbitt
◢ ◤ ◢███◣
◢███◣
我不是m █████
█████ 我不是s
██
●█
● █▇███
是溫柔 ██
╱╲ ●◥█████◣● 是傲嬌
◥
╱█
╱╱ ● ◥████ ˇ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.172.229
1F:→ azureblaze:看語言和compiler,有些&&出現false 221.120.65.3 05/25 07:49
2F:→ azureblaze:後面的就不做了 221.120.65.3 05/25 07:49
3F:→ hirabbitt:也就是說有些合著也和分開寫一樣嘍0.0 163.13.127.91 05/25 11:04
4F:→ ykjiang:沒特殊理由的話,我會用第一種 61.230.65.102 05/25 12:19
5F:→ hirabbitt:有時候要判斷陣列的內容 要先看有無超界 163.13.127.91 05/25 16:59
6F:→ hirabbitt:就只能用第二種 163.13.127.91 05/25 16:59
7F:→ firejox:如果判斷式太長就用第二種 123.240.129.15 05/25 19:03
8F:推 LPH66:五樓你的問題一樓有回答到了 140.112.230.62 05/25 21:27
9F:→ LPH66:有些 && 和 || 是 short-circuit evaluation 140.112.230.62 05/25 21:27
10F:→ LPH66:例如如果 && 前面是 false 後面就不做 140.112.230.62 05/25 21:28
11F:→ LPH66:這種情形下你可以用第一種 140.112.230.62 05/25 21:28
12F:→ hilorrk:第二種和第一種的short-circuit等價吧? 140.112.30.136 05/26 13:54
13F:→ ykjiang:重點不是效能,而是第二種顯得複雜,易錯 61.230.69.187 05/27 12:41
14F:推 winest:除非有常數,否則編譯後都是一樣的 122.116.1.31 05/28 09:29