这种多条件的多条件判断怎么写?
如题:程序如下:
sub test(条件1,条件2,。。。。条件N)
select case 条件1
case 1
case 2
end select
select case 条件2
case 3
case 4
end select
.
.
.
.
.
.
END SUB
这样怎么简化些呢? 请各位指点下哦。
话说lZ这样做不是一种合适的方法,或许你可以这样定义函数
sub test(条件 as long )
select case 条件
case 1
case 2
case 3
case 4
case 5
case 6
.....
end select
.......
END SUB
标志枚举
把条件弄成标志枚举
话说楼主这问题有水平
也可以把case中的内容提取出函数Exact Method重构 Extract Method 个人觉得还是2楼的容易理解些,也通俗些. 你的条件之间有关联么?
如果没有的话就每一个条件写一个函数,这样简单通用
比如
IsFontValid是一个函数
IsValidLocation是一个函数
实在不行就全写出if else
里面在嵌套if else!
+1 条件可以用一个动态数组传送。 没什么可简化的了。
建议楼举实例说明。 条件可以用一个数组或动态数组传送。 我建议还是觉得整个拼接成字符串过去,其实就跟普通的 封包 -> 发送接收 -> 拆包 一样的道理。格式可以自定义,只要接收方做好分解识别工作就好了。有规律的条件看看是否可以通过循环来处理,复杂的条件预定义动作什么的 可以在数据库或者本地规定好,到时直接找到就做了。
貌似楼主的“条件1”到“条件N”中的每个条件只有 1、2 或 3、4,是不是可以理解成是个开关啊?
如果是这样,那么楼主完全可以把这一堆条件理解成二进制状态位来做比较方便,如:
条件1代表第 0 位、条件2代表第1位、条件3代表第2位、。。。、条件N代表第N-1位;
如:条件1为1时表示第0位为0,条件1为2时表示第0位为1;条件2为3表示第1位为0,条件2为4表示第1位为1;
则,楼主在调用方法时可以传一个值“条件”即可,00--0,01--1,10--2,11--3;
sub test(条件 as long)
if 条件 and 1 = 1 then '表示条件1的状态为开
else '表示条件1的状态为关
end if
if 条件 and 2 = 2 then '表示条件2的状态为开
else '表示条件2的状态为关
end if
end sub
(注:当且仅当条件1到条件N为开关状态时用作参考)
我个人觉得没那么简单,比如条件1下面用2个case,条件2下面用3个case,条件3下面用5个case,那怎么写啊?
所以写一个通用的函数或者过程,不太现实. 在条件不太多的情况下没有捷径(不会用99个条件吧,真有99个需要另外考虑),一个一个地写完,其速度要比调用过程或者函数要快!
另外,能够用预编译指令的尽量用预编译指令.这个可以加快编译速度,提高运行效率.
补充:VB , 基础类