普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5543|回复: 3

[已解决] 请教一个IF语句用法的问题

[复制链接]

3

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2020-3-4 23:51:50 | 显示全部楼层 |阅读模式
1金钱
如图所示,我本想第二个IF语句动作的要求是M1等于1,还有K1等于0时才可以动作接通Y0,  但是实际程序中无论M1是否接通,只要K1接通的话Y0就可以接通,,请问为什么是这样的,,我这样写不是代表只有M1==1和K1==0时才可以接通Y0得嘛

最佳答案

本帖最后由 mz8023yt 于 2020-3-10 23:30 编辑 逻辑运算符是 "&&", "||" 和 "!". 您这里使用的逗号运算符. 您第二个 if 内部使用的是逗号运算符, 逗号运 ...

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

20

主题

1344

帖子

8387

积分

论坛元老

Rank: 8Rank: 8

积分
8387
发表于 2020-3-5 10:06:39 | 显示全部楼层
好像没有这样的写法哦!
应该是:
if ((m1==0x1)&&( k1==0x0))//这样写是逻辑“与”运算,结果就是两个条件同时成立,才执行。
if ((m1==0x1)|| (k1==0x0))//这样写是逻辑“或”运算,结果就是两个条件中任何一个成立,就可以执行。
同学,基础要打好哦。

回复

使用道具 举报

0

主题

1

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2020-3-10 23:29:18 | 显示全部楼层
本帖最后由 mz8023yt 于 2020-3-10 23:30 编辑

逻辑运算符是 "&&", "||" 和 "!". 您这里使用的逗号运算符.
您第二个 if 内部使用的是逗号运算符, 逗号运算符值等于最右边的值.

为了便于您理解, 这里贴出一段 c 语言的测试程序: (使用ubuntu编译并运行)

可以发现逗号运算符的取值结果是逗号最右边的 "5" 这个值.
结合逗号运算符的语法, 您就不难理解为什么只要后面的条件成立, 就会执行了.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

5

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2020-3-11 19:52:09 | 显示全部楼层
你的第2个if里的重要任务格式不对,按的想法要用将两个条件“与”,也就是两个条件都满足才能实现。if ((m1==0x1)&&( k1==0x0))
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-3 09:43 , Processed in 0.093011 second(s), 34 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表