假设我有以下声明:
bool foo=true;
if (foo){
foo=false;
}
else{
//do stuff
}
是否会进入其他条件,或者 if 评估后立即丢弃 else ?
答案 0 :(得分:9)
else
将无法评估,因为条件仅执行一次。
如果您选中foo=true
foo
,则执行其中一个条件中的代码。如果foo
为true
,则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:
//...
}