文档介绍:第5章选择结构程序设计
主要内容:关系运算符和关系表达式
逻辑运算符和逻辑表达式
if - else(重点、难点)
switch
条件运算符和条件表达式(了解)
根据选择结构的组成特点,我们在分析问题时着重明确以下两点:
1)条件是什么。
2)条件成立和不成立时分别执行什么操作。
简单条件用关系表达式来表示
判断一个整数n是奇数还是偶数(设n由用户输入)
分析:第一步,输入整数n。第二步,判断:若条件“n%2等于0“成立,则输出“n为偶数“;否则输出“n为奇数“。
main()
{ int n;
printf(“\n enter int n:”);
scanf(“%d”,&n);
if( n%2==0)
printf(“\n %d is even number“, n);
else
printf(“\n %d is odd number”, n);}
开始
输入n
n%2为0
是偶数
是奇数
结束
输入n
,判断其是否能上大学。(设分数线为600,若能上,则输出“ess“,否则输出”failure”)。
分析:第二步是选择结构,条件是“score大于等于600”,
main()
{ int no;
float score;
printf(“\n enter no,score:”);
scanf(“%d%f”,&no,&score);
if( score>=600)
printf(“\n %d :ess”,no);
else
printf(“\n %d :failure.”,no);
}
关系表达式的值:若条件满足,则关系表达式的值为ture( 1);否则,关系表达式的值为false(0)。
:
< <= > >= == !=
例如下列关系表达式:
a>b 表示条件“a 大于 b“,
x!=0 表示条件“x 等于 0“,
a+b<x*y 表示条件”a+b 小于 x*y“。
2. 优先级
算术运算符> 关系运算符> 赋值运算符
且< <= > >= 高于== !=
结合性: 自左向右(一般很少连用)。
如: a>b<c 表示(a>b)<c
f=a<g+1 表示 f=(a<(g+1) )
特别提示:关系运算符“==”与赋值运算符“=”不同。
比较: k=1 与k==1
特别提示:表达式 a+b>d>c也是合法的关系表达式,但在实际应用中很少使用;因为它不能表示:a+b大于c且大于d。
问题:
如何表示:a < x < b
0<y<10 等条件
逻辑运算符和逻辑表达式
复杂条件可用逻辑表达式来描述
判断当前温度是否满足观赏鱼正常生活需要的温度(15~20摄氏度)。(设当前温度由用户输入)。
main()
{ int temperature;
printf(“\n enter the temperature :”);
scanf(“%d”, &temperature);
if(temperature>=15 &&temperature<=20) /*条件*/
printf(“\n normal .”);
else
printf((“\n not normal.”);
}
1. 逻辑运算符
&& || !
(其含义分别是:and与、or 或、negative 非)
逻辑运算规则(见P89)
由表可得逻辑运算的规律:
(1)任何值与0相与,结果为0
(2)任何值与1相或,结果为1
(3)非运算将“非0值”变为0, 将0变为1
如: int x=0, y=5 ; 则!x->1 、!y->0
x&&y -> 0 x || y ->1
特别提示: if( !x ) 等价于 if( x==0)
2. 逻辑表达式: 由逻辑运算符将一个或多个表达式连接起来的式子。比如:
1)"a和b中只有一个为0"的逻辑表达式为:a+b!=0&&a*b==0
2)某英语专业的招生条件“总分(total )超过分数线(600)并且英语成绩(score)不低于85分“,该条件的逻辑表达式为:
total>600&&score>=85
3)判断某年是润年应满足以下两个条件之一:该年能被4整除但不能被100整除,或该年能被400整除。该条件对应的逻辑表达式为:
year%4==0&&year%100!=0 || year%400==0