admin 管理员组文章数量: 1184232
2024年3月21日发(作者:模块建房取暖)
if else 语句
TAG: if…else…,if语句,条件控制语句,语句,程序,程序结构
TEXT: if…else…语句:对一个条件的判断通常有两个可能:„真(1)‟或„假(0)‟,单分支结构
只考虑了其条件为„真‟的情况并给出相应的操作,而没有考虑当条件为„假‟时程序应执行什
么动作。当无论条件为„真‟还是为„假‟都需要执行不同的操作时,可以采用双分支选择结构。
C语言是通过if…else语句实现的。if…else…语句可以在条件为„真‟或为„假‟时执行指定的
不同的动作。
牋?if…else语句的执行过程:
牋牋牋 if?(表达式)?语句序列1;
else?语句序列2;
其中:
if、else:C语言的关键字,由if引导条件为„真‟是执行的操作;由else引导条件为„假‟是
执行的操作。
语句序列:当表达式的值为真(或为假)时执行的语句。可以是一条语句或一组语句,如果
是一组语句,需要采用复合语句形式,用{ }将这组语句括起来。
执行过程:当表达式结果为真时,执行语句S1,放弃语句S2的执行,执行if语句的下一
条语句;当表达式结果为假时,执行语句S2,放弃语句S1的执行,执行if语句的下一条
语句。无论如何,对于一次条件判断,语句S1和语句S2只能有一个被执行。不能同时被
执行。
例如:对及格和不及格学生的成绩信息都要输出。
if(grade>=60)
牋 printf("n%d,passedn",grade);
else
牋 printf("n%d,failedn",grade);?
例4-6 输入整数a,b若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
分支选择处理的条件是:a2+b2>100.根据两个整数相除仍然为整数的原则,用(a2+b2)/100
main()
{
int a,b,y;
printf("enter a,b:");
scanf("%d%d",&a,&b);
if(a*a+b*b)>100牋?* if(a2+b2>100) */
y=(a*a+b*b)/100;
else
y=a+b;
printf("y=%dn",y);
}
程序运行结果:
enter a,b:5 8
y=13
enter a,b:10 2
y=1
通常情况下,单分支结构也可以写成双分支结构的形式。因为双分支结构形式是一种对称
形式,它更符合人们的思维习惯。写出来的程序也比较明确、清晰、易读。
例4-3题可改写为:
牋牋 main()
牋牋 {
牋牋牋?int a,absa;
牋牋牋?printf("enter one number: ");
牋牋牋?scanf("%d",&a);
牋牋牋?if(a<0)?
牋牋牋牋牋 absa=-a;
牋牋牋?else
牋牋牋牋牋 absa=a;
牋牋牋?printf("|%d|=%d",a,absa);
牋牋?}
提示?#22312;if…else…结构中,if体和else体中的语句都应该采用“右缩进“的格式书写。
整个程序的缩进距离应该是一致的。使得程序清晰、易读。不遵循统一的缩进格式会使程
序难以阅读。
在C语言中,除了采用if…else…语句可以实现双分支结构外,还可以通过条件表达式实
现双分支结构。
C语言提供的条件表达式的格式:
牋 表达式1?表达式2:表达式3
执行过程:
求解表达式1的值,若该值为„真(非0)‟:则将表达式2的计算结果值作为整个表达式的结果;
否则将表达式3的计算结果值作为整个表达式的结果。
例如:if(a<0) absa=-a;
else?absa=a;?可以由(a<0)??a:a;替换。
例4-3题可改写为:
牋牋 main()
牋牋 {
牋牋牋 int a,absa;
牋牋牋 printf("enter one number: ");
牋牋牋 scanf("%d",&a);
牋牋牋 absa=(a<0)??a:a;牋牋牋?
牋牋牋牋牋牋?printf("|%d|=%d",a,absa);
牋牋?}
使用条件表达式实现双分支结构的条件是:(1)可以由一个if语句实现的双分支结构;(2)
无论条件的结果是„真‟或是„假‟,所执行的只能是一条简单的语句,并且这条语句只能是给
同一个变量赋值的赋值语句。
用条件表达式来代替if语句实现双分支结构,可以使程序变得简洁,提高执行速度。
将一个if…else…结构转换成条件表达式的方法如下:
(1)将原if语句的条件表达式写成e1;
(2)将当条件为真时的执行的赋值语句右端的表达式做e2;
版权声明:本文标题:if else 语句 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710959146a581459.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论