威纶通官方论坛

IF 化简

[复制链接]
发表于 2014-7-4 15:21:16 | 显示全部楼层 |阅读模式
if  V[0]==1 OR  V[1]==1 OR V[2]==1 OR V[3]==1 OR V[4]==1 OR V[5]==1 OR V[6]==1 then
发表于 2014-7-9 19:09:19 | 显示全部楼层
你的语句在宏指令里面运行不了,不是道你是不是这个意思。

bool V[6] = {1,0,1,0,1,0};
        if(V[0]==1 || V[1]==1|| V[2]==1|| V[3]==1|| V[4]==1|| V[5]==1)
        {
                        printf_s("程序可以执行\n");
        }

当数组中有一个元素的数据为1时,既执行 if 里面的语句。

如果是这个意思,你可以这样简化
macro_command main()
int b=100
bool V[6]={0,0,0,1,0,0}
short C
C = V[0]+V[1]+V[2]+V[3]+V[4]+V[5]       
if  C then
        SetData(b, "Local HMI", LW, 0, 1)
end if
end macro_command
 楼主| 发表于 2014-7-11 08:08:37 | 显示全部楼层
谢谢你的回答,我的意思是化简,不是错误,n个OR,可以简化吗?
发表于 2014-7-17 17:21:50 | 显示全部楼层
任何一个为 1 就执行 化简就是2楼那个方法了 相加只要不为0 就说明一定至少有一个为1 呀 ~
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-11-24 21:11

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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