程序设计讲稿4
本讲涉及的单词:
一、if 若是 二、else 不然 3、switch 开关
4、case 案例、事例 五、default 缺省、默许 六、break 打断
一、关系运算符及其优先级
一、关系运算符:
程序中常常需要比较两个量的大小关系,以决定程序的下一步工作,比较两个量的大小关系的运算符称为关系运算符,C/C++中有以下关系运算符:
> 大于
< 小于
== 等于
>= 大于等于
<= 小于等于
!= 不等于
关系运算符都是双目运算符,其结合性为左结合型。关系运算符的优先级低于算术运算符,高于赋值运算符。六个关系运算符中,>、<、>=、<=的优先级相同,==和!=的优先级相同,但前者高于后者。
二、关系表达式
关系表达式的一样形式:表达式 关系运算符 表达式
例如:a+b>c+d、 x<=3/二、a<(b>c)、a!=(c==d)
关系表达式运算的结果只有两种:真或假(正确或错误,成立或不成立),用数字1和0表示。
例如:5>3 的运算结果是1(正确),而3<5的结果是0(错误)
int main() { 三目条件运算符?:的含义 char c='k'; int i=1,j=2,k=3; float x=3e+5,y=; printf("%d,%d\n",'a'+5<c,-i-2*j>=k+1); printf("%d,%d\n",1<j<5,<=x+y); printf("%d,%d\n",i+j+k==-2*j,k==j==i+5); return 0; } 程序的输出结果是: | 解释: (1) char c=’k’,实质是c=107;因为字符’k’的ASCII码是107。 (2)'a'+5 相当于 97+5,因为字符’a’的ASCII码是97。 (3) 1<j<5 因为关系运算符的左结合性,所以先计算1<j,1<j成立,值为1。再计算1<5,成立,值为1。故表达式值为1 (4)k==j==i+5,先计算k==j,不成立,其值为0,再计算0==i+5,也不成立,值为0,故表达式值为0 |
二、逻辑运算符及其优先级
一、逻辑运算符
&& 逻辑与(and)
|| 逻辑或(or)
! 逻辑非(not)
&&和||均为双目运算符,具有左结合性,其优先级低于算术运算符和关系运算符,&&的优先级高于||。!是单目运算符,具有右结合性,其优先级高于所有的算术运算符关系运算符,也高于&&和||。
a && b ,只有在a和b都为正确的时候,结果才“正确”,其他情形都为“错误”
例如:若是x=4,那么 (x>4 && x<10) 的结果确实是“错误”;
而(x>=2 && x<10) 的结果确实是“正确”;
a || b ,只有在a和b都“错误”的时候,结果才“错误”,其他情形都为“正确”
例如:若是x=4,那么 (x>4 || x<10) 的结果确实是“正确”;
而(x<=2 || x>10) 的结果确实是“错误”;
!a,表示将a的值取反,若是a为正确,那么 !a 为错误,若是a为错误,那么!a为正确
例如:!(4>5)的结果为正确,而!(4<5)的结果为错误。
二、逻辑表达式
用逻辑运算符、关系运算符组成的式子,成为逻辑表达式:
举例:
数学表达式 -2 <= x < 10 的C语言条件表达式:
x是奇数的条件表达式:
x是偶数的条件表达式:
x能被11整除的条件表达式:
x能被4整除但不能被100整除,或能被400整除的C语言表达式:
条件表达式: m % 2==1 && m<=20 || m>10
在m=5的时候,表达式的值为:
在m=8的时候,表达式的值为:
在m=13的时候,表达式的值为:
在m=16的时候,表达式的值为:
在m=23的时候,表达式的值为:
在m=30的时候,表达式的值为:
三、分支语句
格式:if(条件) 语句1;
else 语句2;
功能:若是 条件成立 那么执行语句1,不然执行语句2;
其中,上面的格式中 ”else 语句2;” 能够省略,上面的格式写成了两行,其实能够写成一行的,如此做只是为了程序加倍美观。
例7、编程输入两个整数,输出其中的大数。
解答程序1 | 解答程序2 |
int main() { int a,b,MAX; scanf("%d%d",&a,&b); MAX=a; if(MAX<b) MAX=b; printf("MAX=%d\n",MAX); return 0; } | int main() { int a,b,MAX; scanf("%d%d",&a,&b); if(a>b) MAX=a; else MAX=b; printf("MAX=%d\n",MAX); return 0; } |
解答程序1中,先把a的值赋给变量MAX,再用if语句判别MAX和b的大小,若是MAX<b,那么把b赋给MAX,如此MAX的值确实是a,b中将大的一个。
解答程序2中,若是a>b,那么把a的值赋给MAX,不然把b赋给b。那个地址的不然相当于a<=b。
试探:可否写成下面的形式,若是不能,该如何修改?
if(a>b) MAX=a;
if(a<b) MAX=b;
例八、编程判定键盘输入的字符的类别:若是是数字字符,那么输出“Digit”;若是是大写字母,那么输出“Capital”、若是是小写字母,那么输出“Small”;若是不是上面三类,那么输出“Other”
int main() { char c; scanf("%c",&c); if(c>='0' && c<='9') printf("Digit\n"); else if(c>='A' && c<='Z') printf("Capital\n"); else if(c>='a' && c<='z') printf("Small\n"); else printf("Other\n"); return 0; } | 如果c是数字字符则输出”digit” 否则如果c是大写字母则输出”Capital” 否则如果c是小写字母则输出"Small" 否则输出" Other " |
四、条件运算符
C/C++中有一个与if ~ else ~ 类似的运算符”? :”,它是三目运算符,其格式为:
表达式1?表达式2:表达式3
其含义是:若是表达式1成立,那么以表达式2作为条件表达式的结果,不然以表达式3作为条件表达式的结果。
例如:if(a>b) MAX=a;
else MAX=b;
能够改写为:MAX = a>b? a: b;
条件运算符的优先级高于赋值运算符,低于算术运算符、关系运算符和逻辑运算符。
请用关系运算符改写例7的程序。
五、开关语句
C/C++语言还提供了另一种用于多分支选择的语句——switch语句,其一样形式如下:
形式:
switch(表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
…
case 常量表达式n:语句n
default:语句n+1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论