1.if语句的格式
if(表达式)
语句
若其成立(为真),则执行if语句;反之不执行if语句
在c语言中,常用0表示假,非0或1表示真
2.else
if(表达式)
语句1
else
语句2
这里,if和else可以构成一种分支语句,当要处理的事或物不是简单的直线时,可以用if else作出多条选择。
3.分支循环中包含多条语句
eg.
int main()
{
int n = 0;
n = 5;
if(n>=5)
n++;
printf(“哈哈”);
else
printf(“呵呵”);
return 0;
}
在预测中,输出结果为“哈哈”,但实际不是,为什么呢?
逐条理解:开始是将5赋值给n,进入if语句,满足“n>=5”,执行n++,但是,if和else都只负责紧挨着它的一条语句!即上例中“printf(“哈哈”)”并非if管理,所以结果不会打印哈哈。
当然我们也可以人为改变,即将多条语句放入{}中,即可实现一个if或else控制多条的想法。
4.嵌套if语句
在3中我们知道用大括号可以控制多条语句,那这其中是否可以实现套娃,将另一条if套进if语句中?在这里先举个栗子
eg.小明是一名学生,从他家到学校有两条小吃街,两条街都可以到学校,两条街上都有小明爱吃的早饭。
这时候问问题:小明今天早上吃的什么?
(1)想要知道小明吃的什么,首先要知道他走得哪条街
(2)要知道他在这条街上吃了什么
现在分析:
(1)中的问题就是一条if else语句
对小明来说,不是东街,就是西街
if(东街)
else(西街)
(2)中,对于小明吃的什么早点,就是建立在街的前提下的分支选择
假如东街有豆腐脑和包子,西街有肠粉和冷面
其中只能选择一种作为早饭
则这段代码为
if(东街)
{
if(豆腐脑)
else(包子)
}
else
{
if(肠粉)
else(冷面)
}
这样就实现了上述问题的解决方案,即实现了嵌套if。在实际应用中,只要条理清晰,可以实现更多嵌套。
5.悬空else
在初写代码时,可能会出现类似的错误
if(1)
if(2)
else(3)
在这段事例中,通过向左对齐,使得(1)和(3)对齐,误以为其为一对的if else,这样运行无疑会报错。问题出在这个else并不是与位置对齐的if组为一对,而是与其最近的if组为一对(2)
对于if的理解还是有些浅薄,还请斧正