作者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