使用if,else和else if

smi*_*dha 3 c++ if-statement

有什么区别:

if      (expr1) {stmt}
else if (expr2) {stmt}
else if (expr3) {stmt}    
else            {stmt}
Run Code Online (Sandbox Code Playgroud)

和相同的代码块写成:

if (expr1) {stmt}
if (expr2) {stmt}
if (expr3) {stmt}    
else       {stmt}
Run Code Online (Sandbox Code Playgroud)

Oli*_*rth 10

在第一个中,每个陈述块都是互斥的; 结构保证其中一个将被执行.

第二个不是这样.考虑:

if (a == 2) { /* blah */ }
if (a == 3) { /* blah */ }
if (a < 5)  { /* blah */ }
Run Code Online (Sandbox Code Playgroud)

如果a == 2,那么两个块将被执行.