1.If 的范围问题
if(表达式)
语句a;
语句b;
解释: if 默认只能控制语句 a 的执行或者不执行,也就是说语句 b 一定会执行, if 语句在没有加大括号的情况下只能控制紧邻其后的那一条语句的执行。
2.常见问题解析
int main(void)
{
if(1 > 2);
prinft("aaa");
printf("bbb\n");
}
result: aaa bbb
//解析:之所以导致这样的结果,是因为你在 if 语句的结尾加了一个分号
//下面这两个语句是等价的
else(5>10);
printf("ccc");
else
(5>10);
printf("ccc");
if(){
}else if(){
}else if(){
}
//这样写语法不会出错但是逻辑上有漏洞