(持续更新中!!~)3、原来可以这样理解C语言_分⽀和循环上(2)关系操作符

目录

​编辑

2. 关系操作符


2. 关系操作符

        在使用if......等,顺序结构选择结构循环结构,的时候常常要在表达式中使用一些关系操作符。因此在下面的学习中我们简单了解一些关系操作符。

        C语⾔⽤于⽐较的表达式,称为“关系表达式”(relational expression),⾥⾯使⽤的运算符就称为“关系运算符”(relational operator),主要有下⾯6个。

• “> ”         ⼤于运算符

• “<”          ⼩于运算符

• “>=”        ⼤于等于运算符

• “<=”        ⼩于等于运算符

• “==”        相等运算符

• “!=”         不相等运算符

下⾯是⼀些例⼦。

a == b;

a != b;

a < b;

a > b;

a = b;

关系表达式通常返回 01 ,表⽰真假。

C语⾔中, 0 表⽰假,所有⾮零值表⽰真。

⽐如, 20 > 12 返回 1 12 > 20 返回 0 。 关系表达式常⽤于 ifwhile 结构。

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 返回 01 ,所以最终是 01 与变量 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的时候,依然输出⻘年,如下图:

532afdcfe72e49c3afcb62e483f15ec0.png

这是因为,我们先拿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;
}

        以上就是关于操作符,我们需要掌握的,剩下的只要按照字⾯意思理解使⽤就⾏,没有特别注意的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值