当前位置:主页   - 电脑 - 程序设计 - C/C++
C语言条件控制语句(二)
来源:网络   作者:    更新时间:2010-09-27
收藏此页】    【字号    】    【打印】    【关闭

3.if...elseif语句
实际应用中常常面对更多的选择,这时,将if...else扩展一下,就得到if...elseif结构,其一般形式为:
if<表达式1>

语句1
elseif<表达式2>
语句2
elseif<表达式3>
语句3
else语句4
对应的流程图见图3-4。

[例3-7]货物征税问题,价格在1万元以上的征5%,5000元以上1万元以下的征3%,
1000元以上5000以下的征2%,1000元以下的免税,读入货物价格,计算并输出税金。
分析:读入price,计算tax,这是一个较复杂的分支结构程序设计(应注意避免重复征税)。
假定货物的价格在1万元以上,征税应分段累计,各段采用不同税率进行征收。
算法:若price>=10000
则tax=0.05*(price-10000);price=10000;
否则,若price>=5000
则tax=0.03*(price-5000)+tax;price=5000;
否则,若price>=1000
则tax=0.02*(price-1000)+tax;price=1000;
程序如下:
#include<stdio.h>
main()
{
floatprice,tax=0;
printf("inputprice:");
scanf("%f",&price);
if(price>=10000.0)
{
tax=0.05*(price-10000)+tax;price=10000;
}
if(price>=5000.0)
{
tax=0.03*(price-5000)+tax;price=5000;
}
if(price>=1000.00)
{
tax=0.02*(price-1000)+tax;
}
printf("thetax=%10.3f",tax);
}
运行程序:
RUN¿
15000¿
thetax=480.000
4.if语句嵌套
在一个if语句中可以又出现另一个if语句,这称为if语句的嵌套或多重if语句:
if<表达式1>
if<表达式11>
......
else
语句2;
[例3-8]计算函数
1x>0
y=0x=0
-1x<0
流程图见图3-5。

源程序如下:
main()
{
floatx,y;
printf("inputx,y:");
scanf("%f",&x);
if(x>=0)
if(x>0)
y=1;
else
y=0;
else
y=-1;
printf("y=%4.0f\n",y);
}
对多重if,最容易犯的错误是if与else配对错误,
例如,写成如下形式:
y=0;
if(x>=0)
if(x>0)
y=1;
else
y=-1;
从缩排上可以看出,作者希望else是与ifx>=0配对,但是C语言规定else总是与离它最近
的上一个if配对,结果,上述算法的流程图变成图3-6,完全违背了设计者的初衷。
改进的办法是使用复合语句,将上述程序段改写如下:
y=0;
if(x>=0)
{
if(x>0)
y=1;
}
else
y=-1;

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明