选择If:
定义
某些代码可能执行,也可能不执行,有选择的执行某些代码
1. if最简单的用法
格式:
if(表达式)
语句
功能:
如果表达式为真,执行语句
如果表达式为假,程序不执行
2. if的范围问题
1)
if(表达式)
语句A;
语句B;
解释: if默认只能控制语句A的执行或不执行
if无法控制语句B的执行或不执行
2)
if(表达式)
{
语句A;
语句B
}
解释:此时if可以控制语句A 和语句B
由此可见:if默认只能控制一个语句的执行或不执行
如果想控制多个语句的执行或不执行必须用 { }括起来
3. if…else…的用法
1)
if(表达式)
语句A;
else
语句B;
语句C;
此时语句C与if…else…无关
2)
if(表达式)
语句A;
else
{
语句B;
语句C;
}
此时语句C与if…else…有关
4. if…else if…else…的用法
1)
if(表达式)
A;
else if (表达式)
B;
else if(表达式)
C;
……
else
D;
注意中间输出多个语句要用{ },否则出错。
5. C语言对真假的处理
非零是真 真用1表示
零就是假 假用0表示
6. if举例
1)求分数的等级
2)互换两个数字
3)求三个数的最大值
printf所输出的a(最大值),b(中间值),c(最小值)
解析如下:
7. if的常见问题解析
1)空语句:
if(表达式);//空语句
printf("AAA");
printf("BBB");
//两个输出语句均可以输出
2)
if(表达式);//加分号会导致程序编译到else行出错
语句A;
else
语句B;
//此时运行不出来
3)当表达式1 与表达式2均成立时,仅执行表达式1:
if(表达式1)
A;
else if (表达式2)
B;
else if(表达式3)
C;
……
else
D;
4)没有以else结尾时,语法上不出错(可以运行),逻辑有问题:
if(表达式1)
A;
else if (表达式2)
B;
else if(表达式3)
C;
……
5)结尾的else(表达式)这样写报错:
if(表达式1)
A;
else if (表达式2)
B;
else(表达式3)
C;
等价于:
else
(表达式3) C; //语法错误
修改:①去掉(表达式3)
②加入if 在else 后面 → else if (表达式3)
理解:if 为如果 后面+条件,else if 为否则如果 后面+条件,else为否则 直接得出结论
6)结尾 else (表达式); 语法上不出错(可以运行),逻辑有问题:
if(表达式1)
A;
else if (表达式2)
B;
else(表达式3);
C;
等价于:
else
(表达式3);
C;



