目录
2. 关系操作符
在使用if......等,顺序结构、选择结构、循环结构,的时候常常要在表达式中使用一些关系操作符。因此在下面的学习中我们简单了解一些关系操作符。
C语⾔⽤于⽐较的表达式,称为“关系表达式”(relational expression),⾥⾯使⽤的运算符就称为“关系运算符”(relational operator),主要有下⾯6个。
• “> ” ⼤于运算符
• “<” ⼩于运算符
• “>=” ⼤于等于运算符
• “<=” ⼩于等于运算符
• “==” 相等运算符
• “!=” 不相等运算符
下⾯是⼀些例⼦。
a == b;
a != b;
a < b;
a > b;
a = b;
关系表达式通常返回 0 或 1 ,表⽰真假。
C语⾔中, 0 表⽰假,所有⾮零值表⽰真。
⽐如, 20 > 12 返回 1 , 12 > 20 返回 0 。 关系表达式常⽤于 if 或 while 结构。
if (x == 3) {
printf("x is 3.\n");
}
注意:相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。
有时候,可能会不⼩⼼写 出下⾯的代码,它可以运⾏,但很容易出现意料之外的结果。
if (3 == x) ...
这样的话,如果把 == 误写成 = ,编译器就会报错。
/* 报错 */
if (3 = x) ...
另⼀个需要避免的错误是:多个关系运算符不宜连⽤。
i < j < k
上⾯⽰例中,连续使⽤两个⼩于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的 表达式。
(i < j) < k
上⾯式⼦中, i < j 返回 0 或 1 ,所以最终是 0 或 1 与变量 k 进⾏⽐较。如果想要判断变量 j
的值是否在 i 和 k 之间,应该使⽤下⾯的写法。
i < j && j < k
⽐如:我们输⼊⼀个年龄,如果年龄在18岁~36岁之间,我们输出⻘年。
· 如果我们这样写
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(18<=age<=36)
{
printf("⻘年\n");
}
return 0;
}
当我们输⼊10的时候,依然输出⻘年,如下图:

这是因为,我们先拿18和age中存放的10⽐较,表达式1818的结果是0,再拿0和 36⽐较,
0<=36为真,所以打印了青年,所以打印了 ⻘年 ,所以即使当age是10的时候,也能打印 ⻘年 ,逻辑上是有 问题,这个代码应该怎么写呢?
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age>=18 && age<=36)
{
printf("⻘年\n");
}
return 0;
}
以上就是关于操作符,我们需要掌握的,剩下的只要按照字⾯意思理解使⽤就⾏,没有特别注意的。

1788

被折叠的 条评论
为什么被折叠?



