多条件判断如何写才便于维护[已解决]
本帖最后由 heroxianf 于 2016-9-5 09:49 编辑下面代码是我简单的构思,但是完成不了,还请帮帮忙看看如何实现更加简单和便于后期维护。
如下面代码,只有几个条件判断的时候还写写到没事,如果$data_1 到 $data_300了。那就麻烦了。我想用变量递增来循环,这样一来当$data_?逐渐增加我也不用逐个添加循环避免出错。还希望大家举个列子。
Local $Data_1 =
Local $Data_2 =
Local $Test = 1
For $eMlue In $Data_1
If $eMlue = $Test Then
For $eMlue In $Data_2
If $eMlue = $Test Then
MsgBox(0, '', $eMlue & ' 值在第一个数组里,不在第二个数组里')
Exit
Else
MsgBox(0, '', $eMlue & ' 值在第二个数组里')
EndIf
Next
;... ...后续如果增加$DATA_? 就添加进来
Else
For $eMlue In $Data_2
If $eMlue = $Test Then
MsgBox(0, '', $eMlue & ' 值在第二个数组里')
Exit
Else
Sleep(10)
EndIf
Next
;... ...后续如果增加$DATA_? 就添加进来
EndIf
Next 突然发现连这个两次循环判断都没有做对~哎。。。。 表示完全不懂楼主想干啥... 首先,你自己的逻辑得比较好,才能便于维护…… 回复 4# skyfree
正在整理思路 这两天有点感冒 头晕的很。 大约就这个样子可以方便变量循环
#include-once
#include "array.au3"
Global $data
$data = 1
$data = 2
$data = 3
_ArrayDisplay($data) 回复 7# liongodmien
我在想多条件同时判断,理顺了再交上来帮忙检查下。 语言只是工具,逻辑清楚才是代码强壮简练的基础 目前只能对所要判定的内容多种方法得到结果,然后在通过判断得出想要的的输出。比如
if $a>3 and $b=5 then
msgbox(0, '', 'ok')
endif
这样把自己想要帅选的都去判定一次,然后在组合判定是否成立。 用配置文件就便于维护 回复 11# qq82015930
能举一个简单的例子吗? 本帖最后由 heroxianf 于 2016-9-5 09:49 编辑
回复 7# liongodmien
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Local $Data = 'ssdghjkk'
Local $aArray1 = StringRegExp($Data, 's', 3)
Local $aArray2 = StringRegExp($Data, 'd', 3)
Local $aArray3 = StringRegExp($Data, 'o', 3)
Local $a = UBound($aArray1)
local $b = UBound($aArray2)
local $c = UBound($aArray3)
Select
Case $a > 0 and $b > 0 and $c <= 0
MsgBox(0, '', '条件1、2符合,3不符合')
Case $a <= 0 and $b > 0 and $c <= 0
MsgBox(0, '', '条件2符合,1、3不符合')
Case $a > 0 and $b <= 0 and $c <= 0
MsgBox(0, '', '条件1符合,2、3不符合')
EndSelect
目前我用这个可以满足我的要求,我使用它加入循环 通过不同条件来判断各个归类是否正确。就是条件多了,虽然有点繁琐,但是能解决问题,后期再考虑创建数组变量来代替这些。 自己遇到的问题用13楼可以解决,实现过程虽然笨了一点,但是没有出现问题。只需维护好正则内容就好。
页:
[1]