C语言陷阱【"悬挂"else引发的问题】
"悬挂"else引发的问题
在C语言程序中,else始终与同一对括号内最近的未匹配的if结合,括号使用不当,会造成程序实际执行效果的差错。
如:
该程序的本意是,当x等于0,且 y等于0,计算z=x-y,当x不等于0,计算z=x+y,但因为else始终与同一对括号内最近的未匹配的if结合,该程序的实际执行效果是:
Else 与if(y==0)中的if结合,造成z=x+y,被直接跳过。
按照程序执行的本意,该程序应该写为:
程序执行结果: