马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
当要包含多个判断句时,可以通过嵌套的形式使用多个if…else语句,具体如下: if(test condition-1) {if(testcondition-2) { statement-1; } else { statement-2; } } else { statement-3; } statement-x; 其运行逻辑所示。如果condition-1为假,将运行statement-3语句;否则,继续执行第二个测试。如果statement-2为真,则运行statement-1语句;否则运行statement-2语句,然后把控制权转交给statement-x语句。 商业银行引入了一个激励政策,给所有储户奖金。该政策叙述如下:每年的12月31日奖给储户银行存款余额的2%。如果是女性用户,且余额大于5000,则奖励存款余额的5%。其逻辑代码如下: ...... 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("Enterthree values\n"); scanf("%f%f %f",&A,&B,&C); printf("\nLargestvalue 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
|