你真的知道判断语句吗?

你学习C语言的时候,你是否真的了解过三大语句到底是什么吗?就算知道,你能很快回答以下问题吗?今天就由我来为大家拨开心中的疑惑,来见识一下今天的问题吧。
在这里插入图片描述

🎈问题 1 : 什么是语句?

🎈问题 2 : 逻辑与或非到底怎样判断?

🎈问题 3 : 条件判断是怎样进行判断的?

🎈问题 4 : 条件判断应该如何书写?


Q1 什么是语句?

C语言中语句可以分为:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

而本次我们所主要认识的就是控制语句,控制语句用于控制语句的执行流程,它们由特定的语句定义符组成,C语言有9种控制语句。

大致可以分为以下三类:

  1. 条件判断语句:if 语句、switch 语句;
  2. 循环语句:do while 语句、while 语句、for 语句;
  3. 转向语句:break 语句、goto 语句、continue 语句、 return 语句。

Q2 逻辑 与或非 到底怎样判断?

在了解这个问题之前,我们首先要了解什么是逻辑 或非

  1. 逻辑与 &&
  2. 逻辑或 ||
  3. 逻辑非 !

1 . 逻辑与

在使用 逻辑或 的时候会发生 短路 现象

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    int c = 3;
    a = b++ && a++ && ++c;
    printf("%d %d %d", a, b, c);
    return 0;
}

在这里插入图片描述

在上面的运算中,结果是什么呢?

在这里插入图片描述

我们可以看到, b = 3, a 与 c 的值并没有变,其实在程序读取到 a 的时候,由于 a 是 后置 ++(先使用,再自加),所以首先接收到的值为 0 ,判断为假,返回 0 赋值给 a ,而 c 由于短路,并没有计算到。

2 . 逻辑或

在使用逻辑与 的时候也会有 短路 现象发生

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    int c = 3;
    a = b++ || ++c;
    printf("%d %d %d", a, b, c);
    return 0;
}

大家可以猜猜结果是什么?

在这里插入图片描述

我们可以看到,b = 3, 而 c 却没有变,是因为这其中遇到了短路现象,而 a = 1 , 是因为结果为真默认返回1。

看到这里,我们是否可以总结一些规律

遇真则真(逻辑或 ||

遇假则假(逻辑与 &&

3 . 逻辑非

逻辑非就是将原来的结果转换,真变假,假变真;符号为


Q3 条件判断是怎样进行判断的?

我们在进行判断的时候,主要会涉及到以下操作符

运算符名称或含义使用形式结合方向
>大于表达式1 > 表达式2左到右
>=大于等于表达式1 >= 表达式2左到右
<小于表达式1 < 表达式2左到右
<=小于等于表达式1 <= 表达式2左到右
==等于表达式1 == 表达式2左到右
!=不等于表达式1 != 表达式2左到右

注意== 是判断判断是否相等的,而 = 是赋值。


好了,既然我们已经有了初步的了解,那我们看一下下列问题你是否能回答的上来吧

#include <stdio.h>
int main()
{
    char c = 'd';
    int ret = 0;
    ret = 'm' < c <= 'z';
    printf("%d", ret);
    return 0;
}

在这里插入图片描述
问:ret 的值为多少?
在这里插入图片描述
怎么样?你猜对了吗?

我们可以观察到,结果并没有为 0, 而结果确实 1 , 这是为什么呢?

解释:由于运算符 < <= 结合方向都是==从左向右==结合,而 c = ’ d ’ ,所以先进行 m < d 的判断,m < d 为假返回 0, 而 0 < ’ z ’ 为真,返回 1 ,由此便得到 ret = 1

现在我们已经知道,这样的书写方式会出现一定的问题,那么,我们应该怎样书写才能避免这样的问题呢?

Q4 条件判断应该如何书写?

在上面语句基本不变的情况下,我们将条件判断改为以下写法:

#include <stdio.h>
int main()
{
    char c = 'd';
    int ret = 0;
    ret = 'm' < c && c <= 'z';
    printf("%d", ret);
    return 0;
}

结果为:
在这里插入图片描述
我们可以观察到,当我加了 && 符号后,结果就如同我们所想的一样了。

由此推广:

当表达式中有存在判断关系是并列关系的时候,我们应该使用 && 符号;

当表达式关系为两者之一的关系时,我们应该使用 || 符号


总结

本章博客主要目的是为了让大家更加清楚,操作符的左右结合性顺序,认识条件表达式正确的书写方法,学会判别由操作符左右结合性所导致的问题。

如果本章博客对你有帮助,请竖起你尊贵的手指帮我点一下👍吗?😘这对我真的很重要!(o゚v゚)ノ

  • 今日份分享
  • 今日份点赞ヾ(≧▽≦*)o
  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

泡泡牛奶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值