当前位置:文档之家› c语言 第05章选择结构程序设计

c语言 第05章选择结构程序设计


第 五 章 选择结构程序设计
if 语句嵌套: 一般形式
if (expr1)
if (expr2) statement1
else
statement2
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
第 五 章 选择结构程序设计
例:输入两数并判断其大小关系
/*ch5_4.c*/
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
第 五 章 选择结构程序设计
if ~ else 配对原则:缺省{ }时,else总是和它 上面离它最近的未配对的if配对
if(……) if(……) if(……) else…... else…...
}
运运运运行行运行行::行::EE:nEnEttneeEntrrentaerateraccrahhcaachrrchaaharccarttacereactrre:ct:ert:er8:r:DhF1
TTTThhTheheeheccechhchachaarhraaraaraccarcttaceetcterretrierissirissaaisaadcociolgtaonhipwteirrteoarcllhlcleaehtrtataerecrartcetrer
#include <stdio.h>
main()
{ int x,y;
运行:Enter integer x,y:12 23
printf("Enter integer x,y:");
X<Y
scanf(“%d %d”,x,y)%d,%d",&x,&Eyn)t;er integer x,y:12 6
if(x!=y) if(x>y) printf("X>Y\n"); else printf("X<Y\n");
条件运算符与表达式
• 一般形式: expr1 ? expr2 : expr3
• 执行过程
• 功能:相当于条件语句,但不能取代一般if语句 条优例例如例件先求(pi(((efax运级xcxrl(=>%>>isnaap=e==算:p0t>+2rfb0‘ri?(ab=|ni1)“)bn符1’)?=ta?3|tf&:’(f+1x(Y(“可&:x)|“%-b’?%:x<’|c1dN嵌=d0<:”%0’”?,=,a套-b‘d)z1);\’;:n)0?”,)cb->’a0’+?’aA+’:bc:a-b非p);r0in=tf(1“%dex”,par>1b?a:b=)0;
第 五 章 选择结构程序设计
形式三:格式
if ( expr1 )
statement1;
else if (expr2 ) statement2;
else if (expr3 ) statement3;
…...
[ else
statementn; ]
第 五 章 选择结构程序设计
执行过程:
=0 expr1
else if(c>='A'&&c<='Z') printf("The character is a capital letter\n");
else if(c>='a'&&c<='z') printf("The character is a lower letter\n");
else printf("The character is other character\n");
}
运行:Enter an integer:-12 integer:-12 absolute value :12
第 五 章 选择结构程序设计
/*ch5_2.c*/ 例:输入两个数并判断两数相等否
#m{ianpiicnrnli(utn)datf,e(b"<;Esntdteior/.*ihn变>te量ge定r义a:*")/运; /*行语:句EaE提=nn示=tteeb*rr/
第 五 章 选择结构程序设计
例: 考虑下面程序输出结果:
main()
{ int x=100,a=10,b=20;
int v1=5,v2=0;
if(a<b)
if(b!=15)
if(!v1)
x=1;
else
if(v2) x=10;
x=-1;
printf(“%d”,x);
}
结果:-1Leabharlann 返回第 五 章 选择结构程序设计
a 0(假)
1 b
0(假)
1 c
0(假)
1(真) 0(假)
<>
第 五 章 选择结构程序设计
优先级: 结合方向:
2.逻辑或运算符:| | 如有逻辑表达式: a||b||c
执行过程是:当a为非0时,b和c不用 再判断了,逻辑或运算符将不再执行, 其结果为1,否则继续执行后面的运算。
非0(真) a
0 非0(真) b
a equal to b
第 五 章 选择结构程序设计
§5.2 逻辑运算符和表达式
• 逻辑运算符
– 种类: ! (非) &&(与) ||(或) – 逻辑运算真值表
a
b
!a
!b a&&b a||b
























C语言中, 运算量: 运算结果:
0表示“假”, 非0表示“真”, 0表示“假”,
0 非0(真) c
例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d)
0(假) 1(真)
//结果m=0,n=1
第 五 章 选择结构程序设计
§5.3 if语句
if语句的三种形式
• 形式一: » 格式:if (expression) statement; » 执行过程:
第 五 章 选择结构程序设计
第五章 选择结构程序设计
关系运算符与关系表达式 逻辑运算符与逻辑表达式 if语句(条件运算符与条件表达式) switch语句 程序举例
第 五 章 选择结构程序设计
§5.1关系运算符和表达式
• 关系运算符
– 种类:< <= == >= > != – 结合方向:自左向右 – 优先级别:
第 五 章 选择结构程序设计
优先级: 结合方向:
! 算术运算符

关系运算符
&&和| | 赋值运算符

! :从右向左 && :从左向右 || :从左向右
<>
例 a=4;b=5;
!a
//值为0
a&&b //值为1 a||b //值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
#include <stdio.h>
main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if(x>y) x=y; y=x;
else
Compile Error! 编译出错
x++; y++;
printf(“%d,%d\n”,x,y);
}
第 五 章 选择结构程序设计
/*ch5_1.c*/ #include <stdio.h>
/*语句提示*/
c=getchar();
/*键盘输入一个字符*/
if(c<0x20) printf("The character is a control character\n");
else if(c>='0'&&c<='9') printf("The character is a digit\n");
X>Y Enter integer x,y:12 12 X==Y
else
printf("X==Y\n");
}
第 五 章 选择结构程序设计
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
例:if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else
非0
=0 expr2
非0
=0 expr3
非0
statemnt1 statemnt2 statemnt3 statemntn
index=0.4; index=0.3; index=0.2; index=0.1; index=0;
相关主题