在关于 switch 和 goto 的问题中,此答案使用此代码来完全避免使用 goto:
switch(color)
case YELLOW:
if(AlsoHasCriteriaX)
case GREEN:
case RED:
case BLUE:
Paint();
else
default:
Print("Ugly color, no paint.");
这段代码是如何工作的?我知道案例会自动失败,所以我不需要解释 when color
is YELLOW
,但是 when color
isGREEN
呢?C++else
从未遇到if
. 这段代码甚至会编译吗,它会是运行时错误,还是会忽略else
?