凌阳教育专注嵌入式教育14年,良心教育,有担当,有诚信,值得信赖的教育品牌,欢迎访问官网#www.sunplusedu.com

嵌套if…else语句

上一篇 / 下一篇  2016-04-11 17:51:06

当要包含多个判断句时,可以通过嵌套的形式使用多个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

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar