if语句的一些理解

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的理解还是有些浅薄,还请斧正

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值