|
当要包含多个判断句时,可以通过嵌套的形式使用多个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语句。
商业银行引入了一个激励政策,给所有储户奖金。该政策叙述如下:每年的
......
if(性别为女性)
{
if(balance>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