切换与 if 语句

我进退两难了.哪个最好用,为什么.. switch 或 if?

I'm in a dilemma. Which is best to use and why.. switch or if?

switch ($x) 
{
case 1:
  //mysql query 
  //echo something
  break;
case 2:
  //mysql query 
  //echo something
  break;
}

...

if ($x == 1) {
    //mysql query 
    //echo something    
} 

if ($x == 2) {   
    //mysql query 
    //echo something
}  

推荐答案

它们有不同的含义.

第一个例子会在条件满足时停止.

The first example will stop when the condition is met.

第二个将测试 $x 两次.

The second will test $x twice.

您可能希望将第二个 if 设为 else if.这意味着一旦一个条件评估为 true,该块将被跳过.

You may want to make your second if an else if. This will mean the block will be skipped as soon as one condition evaluates to true.

但如果您想知道哪一个最快,您应该考虑哪个最有效地传达了我想要做的事情.它们都很可能最终成为目标架构中的条件跳转.

But if you are wondering which one is fastest, you should instead think which one most effectively communicates what I want to do. They will both most probably end up as conditional jumps in the target architecture.

过早的优化......(你知道其余的:P)

Premature optimisation... (you know the rest :P )

相关文章