1
2
选择结构语句是指程序在运行中,能依据运行时某些变量或表达式的值,确定哪些程序段被执行以及哪些程序段不被执行。
3
5.1 关系运算符和关系表达式
4
例如: c>a+b 等效于 c>(a+b)
a>b!=c 等效于 (a>b)!=c
a==b
a=b>c 等效于 a=(b>c)
关系表达式:用关系运算符将两个表达式连接起来的式子。
关系表达式运算结果为:“真”或“假”值。
C语言用1代表“真”值,用0代表“假”值。
例如:若 a=3,b=2,c=1
f=a>b>c 则f的值为0。
5.2 逻辑运算符和逻辑表达式
5
6
例如:(a>b)&&(x>y) 可以写成 a>b&&x>y
(a==b)||(x==y) 可以写成 a==b||x==y
(!a)||(a>b) 可以写成 !a||a>b
5>3&&2||8<4-!0 的值为 1
‘c’&&‘d’ 的值为 1
7
逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来
的式子。运算结果为:“真”或“假”值。系统在
运算时以非0为“真”值,以0为“假”值。
例如: 4&&0||2 的值为1
5&&!0 的值为1
逻辑运算:
a&&b&&c
若a为0,则b和c不再判断。表达式结果为0,即“假”值。
a||b||c
若a为1,则b和c不再判断。表达式结果为1,即“真”值。
8
设 a=1,b=2,c=3,m=1,n=1
若 m=(a>b)&&(n=c>4)
则 m为0 , n 为 1。
9
x>0&&x<10
0
注意:
10
条件运算符: ? :
三目运算符, 条件表达式的一般格式为:
表达式1?表达式2:表达式3
运算过程:表达式1的结果为真(非0)时,表达式2的计算结果作为条件表达式的值;否则,取表达式3的计算结果为条件表达式的值。如: a>b?a:b
条件运算符的优先级低于逻辑、关系、算术运算符高于赋值运算符。
如: a>b?a:b+1 相当于 (a>b)?a:(b+1)
5.2条件运算符和条件表达式
11
条件运算符的结合率为:“自右至左”。
如: a>b?a:c>d?c:d 相当于 a>b?a:(c>d?c:d)
注意:条件表达式中的表达式1、表达式2、表达式3可以是不 同的类型。
如: main() {float p; char x,y;
scanf("%c%c",&x,&y); p=x>y?1:1.5; printf("\n%f",p); }
12
5. 3 if语句
选择结构语句是指程序在运行中,能依据运行时某些变量或表达式的值,确定哪些程序段被执行以及哪些程序段不被执行。
13
执行过程:
14
例:任意输入一个整数,求其绝对值并输出。
分析: 输入一个整数,此数可以是正数、零或负数,若为负数则将其转化为正数,若为正数或零什么也不做,最后输出结果。
main()
{
int x;
printf(“please input a integer: ");
scanf("%d",&x);
if(x<0) x= -x;
printf("%d\n",x);
}
15
16
执行过程:
17
例:输入两个实数,按代数值由小到大次序输出这两个数。
main()
{float a,b,t;
scanf("%f,%f",&a,&b);
if (a>b) {t=a; a=b; b=t;}
printf("%5.2f,%5.2f",a,b);
}
18
例: 输入三个实数,按代数值由小到大次序输出这三