第四十节:关系符的等于“==”和不等于“!=”。
第四十节_pdf文件.pdf
(70.35 KB)
【40.1 关系符的等于“==”和不等于“!=”。】
C语言的“=”并不是等于号,而是赋值的意思,这点前面已讲过。为了跟赋值区分开来,C语言用“==”来表示等于号的关系符,用“!=”表示不等于的关系符,之所以用“!=”表示不等于的关系,是因为C语言中的“!”就是“取非”的运算符,有否定之意。
等于关系符“==”语句的常见格式如下:
- if(常量或变量==常量或变量)
- {
- 语句1;
- 语句2;
- }
- 语句3;
- 语句4;
不等于关系符“!=”语句的常见格式如下:
- if(常量或变量!=常量或变量)
- {
- 语句1;
- 语句2;
- }
- 语句3;
- 语句4;
上一节讲到,常量或变量在if语句中的真假判断,不等于0就是真,等于0就是假。而本节关系运算符的真假判断也很简单清晰,满足条件就是真,不满足条件就是假。例如:
- if(2==1) //2肯定不等于1,所以不满足条件“等于的关系”,因此为假,不会执行大括号内的语句。
- {
- 语句1;
- 语句2;
- }
相反,请继续看下面不等于号“!=”这个例子:
- if(2!=1) //2肯定不等于1,所以满足条件“不等于的关系”,因此为真,会执行大括号内的语句。
- {
- 语句1;
- 语句2;
- }
【40.2 建议把常量放在“==”或“!=”关系符的左边】
“if(a==1)”和“if(1==a)”在实现的功能上是相同的。但是,在实际做项目的时候,还是建议大家采用后面这种写法“if(1==a)”,把常量放在左边,这样写有什么好处?好处是,如果我们不小心把等于号“==”或者“!=”误写成赋值符号“=”时,C编译器在编译时,它能及时发现错误并且报错告知我们,因为常量在左边是无法赋值的,编译器能及时发现错误。但是如果常量在右边而变量在左边,因为变量是允许赋值的,所以有一些C语言编译器未必会报错,就会留下不易察觉的程序隐患。比如:
- if(a==5)
- {
- 语句1;
- }
- if(b!=2)
- {
- 语句2;
- }
建议改成:
- if(5==a)
- {
- 语句1;
- }
- if(2!=b)
- {
- 语句2;
- }
【40.3 例程练习和分析。】
现在编写一个实验程序,一共有8个给定的数,要统计其中数值“等于85”的数有几个,统计其中数值“不等于75”的数有几个。
程序代码如下:
在电脑串口助手软件上观察到的程序执行现象如下:
- 开始...
- 第1个数
- 十进制:2
- 十六进制:2
- 二进制:10
- 第2个数
- 十进制:7
- 十六进制:7
- 二进制:111
分析:
变量a为2。(等于85的有x3,x8这2个)
变量b为7。(不等于75的有x1,x2,x3,x4,x5,x6,x8这7个)
通过实验结果,发现在单片机上的实验结果和我们的分析是一致的。
【40.4 如何在单片机上练习本章节C语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改“C语言学习区域”的代码就可以了,其它部分的代码不要动。编译后,把程序下载进带串口的51学习板,通过电脑端的串口助手软件就可以观察到不同的变量数值,详细方法请看第十一节内容。
|