在c ++中使用“else if”

时间:2012-10-06 07:16:25

标签: c++ if-statement

我有两个问题 - (I)

code-fragment-1

if(<condition-statement>){
}

else if(<condition-statement-2>){
    //statements-1
}
//statements-2

代码片段-2

if(<condition-statement>){
}

else{
    if(<condition-statement-2>){
        //statements-1
    }
    //statements-2
}

以上两个代码片段是否相同?

(II)何时使用ifs(使用C ++)?

4 个答案:

答案 0 :(得分:13)

唯一的区别在于示例1,无论您检查的条件如何,您的Statement2都将被执行。在示例2中,只有在if条件为假时才会执行Statement2。除此之外,它们基本相同。

答案 1 :(得分:8)

不,在第一种情况下,只有在<condition-statement> 未经过验证时才执行else块仅在 <condition-statement-2> 时执行已经过验证

在第二种情况下,如果<codition-statement> 未经验证,则执行else块。

在这种情况下等效直到你没有任何//语句-2。

关于这个问题:什么时候使用else(使用c ++)?

基本上在具有此构造的所有其他语言的相同条件下使用。 执行else作为相关if的替代,else-if作为替代执行,但要附加'if进行验证,否则不执行。 所以它们在逻辑上并不相同。

答案 2 :(得分:3)

if的语法确实如此 if(条件)陈述;

{}真正做的是允许您将多个语句组合在一起。在你的第二个例子中,你的{}中只有一个语句(if),所以是的,两个例子是相同的,除了//语句-2总是在!= true时运行

答案 3 :(得分:1)

在您的第一个代码示例中,无条件执行statement-2。在第二个是有条件的。不一样。

'否则,如果'通常是首选,因为你可以无限期地插入或追加更多,或者附加'其他',而另一种形式你必须无休止地用括号弄乱以获得相同的效果,你冒着改变语义的风险,就像你在第二个样本中所做的那样。