当使用if语句嵌套时,要小心else悬空。比如:
if (x == 0) if (y == 0) return 0; else return -1;
上面的else子句究竟属于哪一个if语句呢?缩进格式暗示它属于最外层的if语句。然而,根据C语言的规则,else子句应该属于离他最近的且还未与其他else匹配的if语句。所以else子句实际属于最内层的if语句,正确的缩进方式应该是这样的:
if (x == 0) if (y == 0) return 0; else return -1;
为了使else子句属于最外层的if语句,我们可以用{ }把内层的if语句括起来:
if (x == 0)
{
if (y == 0)
return 0;
}
else
return -1;



