凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

嵌套if…else语句

已有 698 次阅读| 2016-4-11 17:51

当要包含多个判断句时,可以通过嵌套的形式使用多个if…else语句,具体如下:

if(test condition-1)

       {if(test condition-2)

              {

              statement-1;

              }

              else

              {

              statement-2;

              }

       }

else

       {

       statement-3;

       }

       statement-x;

其运行逻辑所示。如果condition-1为假,将运行statement-3语句;否则,继续执行第二个测试。如果statement-2为真,则运行statement-1语句;否则运行statement-2语句,然后把控制权转交给statement-x语句。

商业银行引入了一个激励政策,给所有储户奖金。该政策叙述如下:每年的1231奖给储户银行存款余额的2%。如果是女性用户,且余额大于5000,则奖励存款余额的5%。其逻辑代码如下:

......

if(性别为女性)

{

       ifbalance>5000)

              bonus=0.05*balnace;

       else

              bonus=0.02*balance;

}

       else

       {

              bonus=0.02*balance;

       }

       balance=balance+bonus;

       ......

      

当使用嵌套形式时,应小心使每个if有一个else语句总是与最近的未终止的if匹配。因此,上面的else与里面的if相关联,因此外面的if没有与之匹配的else,这意味着程序没有为男性储户计算奖金就运行下面语句了:

banlance=balance+bonus;

下面是又一种形式,看上去好像也是对的:

......

if(性别为女性)

{

       if(balance>5000)

              bonus=0.05*balance;

}    

else

   bonus=0.02*balance;

balance=balnace+bonus;

......

在这种情况下,else与外部的if相关联,因此为男性储户计算量奖金。但是,对于存款余额小于5000的女性储户,就没有为其计算奖金,因为里面的if没有响应的else子句。

程序使用率嵌套if...else语句来选出三个数字中最大的数,然后显示它。

程序

main()

{

       float  A,B,C;

       printf("Enter three values\n");

       scanf("%f %f %f",&A,&B,&C);

       printf("\nLargest value is ");

       if(A>B)

       {

              if(A>C)

                     printf("%f\n",A);

              else

                     printf("%f\n",C);

       }

       else

       {

              if(C>B)

                     printf("%f\n",C);

              else

                     printf("%f\n",B);

       }

}    

else的遗失问题

当我们开始使用嵌套if…else语句时,遇到的最典型的问题之一是else的遗失。当一个if没有与之匹配的else时,就会发生这种情况。解决这个问题很简单。给当前代码块中最近的无匹配的if加上一个else子句。有时候可能不需要假设条件。此时就可以省略掉else语句了。

凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 14:52 , Processed in 0.023971 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部