C语言学习(第十天)

文章介绍了C语言中的关系运算符,包括大于、小于、大于等于、小于等于、等于和不等于,以及它们在条件语句如if和while中的应用。同时,强调了相等运算符(==)与赋值运算符(=)的区别,提醒开发者防止因混淆两者而导致的逻辑错误。文章通过示例指出了连续使用关系运算符可能导致的误解,并给出了正确的年龄判断示例,强调了应该使用逻辑与(&&)来确保条件的正确组合。
摘要由CSDN通过智能技术生成
2. 关系操作符
C 语⾔⽤于⽐较的表达式,称为 “关系表达式”(relational expression),⾥⾯使⽤的运算符就称
为“关系运算符”(relational operator),主要有下⾯6个。
> ⼤于运算符
< ⼩于运算符
>= ⼤于等于运算符
<= ⼩于等于运算符
== 相等运算符
!= 不相等运算
下⾯是⼀些例⼦.
a == b;
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 (x = 3 ) ...
上⾯⽰例中,原意是 x == 3 ,但是不⼩⼼写成 x = 3 。这个式⼦表⽰对变量 x 赋值 3 ,它的返
回值为 3 ,所以 if 判断总是为真。
为了防⽌出现这种错误,有的程序员喜欢将变量写在等号的右边。
if ( 3 == x) ...

 

这样的话,如果把 == 误写成 = ,编译器就会报错。
/* 报错 */
if ( 3 = x) ...

 另⼀个需要避免的错误是:多个关系运算符不宜连⽤。

 1 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比较,表达式18<=10为假, 18<=age 的结果是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;
}

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顶配

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值