如果不评价

时间:2015-04-10 16:53:48

标签: c++ if-statement

假设我有以下声明:

    bool foo=true;
    if (foo){
            foo=false;
    }
    else{
             //do stuff
    }

是否会进入其他条件,或者 if 评估后立即丢弃 else

3 个答案:

答案 0 :(得分:9)

else将无法评估,因为条件仅执行一次。

如果您选中foo=true foo,则执行其中一个条件中的代码。如果footrue,则foo=false完成,执行停止。

答案 1 :(得分:2)

if是一个分裂。根据表达式的值,可以评估代码的“if”或“else”部分,但不能同时评估这两个部分,而这都是关于它的。

在您的示例中,由于foo的值为true,因此“if”分支运行(将foo设置为false)并且“else”分支为忽略。

答案 2 :(得分:0)

如果条件评估为if,则else语句无法提供到true部分的方法。

如果您需要此功能,可以使用switch

bool foo = true;
switch (foo) {
case true:
    foo = false;
    // FALL THROUGH
default:
    //...
}