[已解决]怎么简化这2段代码,求教。
本帖最后由 zzs162 于 2012-8-17 20:13 编辑怎么简化这2段代码,求教。
代码:If StringMid($sRer, 3,1) =StringMid($sRer, 4,1)THEN
$js=$js+1
ElseIf StringMid($sRer, 3,1) =StringMid($sRer, 5,1)THEN
$js=$js+1
ElseIf StringMid($sRer, 4,1) =StringMid($sRer, 5,1)THEN
$js=$js+1
endif
--
详情请看4-5楼 for $a=4 to 5
if stringmid($a-1,1) = stringmid($a) then $js+=1
next for $a=4 to 5
if stringmid($a-1,1) = stringmid($a) then $js+=1
next
Qokelate 发表于 2012-8-17 04:21 http://www.autoitx.com/images/common/back.gif
测试了好像不行啊。 本帖最后由 ajian55 于 2012-8-17 15:54 编辑
回复 3# zzs162
2楼的当然不行,少比较了一次。
本来就只需要比较3次,似乎没什么好简化了的,不过可提高效率N分之一毫秒:$a = StringMid($sRer, 3, 1)
$b = StringMid($sRer, 4, 1)
$c = StringMid($sRer, 5, 1)
If $a == $b Then
$js += 1
ElseIf $a == $c Then
$js += 1
ElseIf $b == $c Then
$js += 1
EndIf #include <Array.au3>
$sRer = "abcdefghi"
$sp = StringSplit(StringMid($sRer,3,3),"",2)
$arr = _ArrayUnique($sp)
$js += 3-$arr 太感谢各位了。让我多学了点东西。。 本帖最后由 zzs162 于 2012-8-17 20:12 编辑
谢谢楼上各位
测试4-5可以。谢谢啊。 感谢分享,这下可以好好学习了 回复 5# 风行者
又学习了一个函数的用法—_ArrayUnique()的用法,呵呵~
4楼兄弟的程序与楼主几乎一样,但:
自己多琢磨就会发现把函数返回值先赋值给一个变量比直接使用函数还是可以节省一些时间的。
特别是需要多次引用的时候。
(楼主的程序从可读上比四楼要好,但四楼的效率稍微高一点,由于代码短,所以提高的效率不明显!) If StringInStr(StringMid ($sRer,4,2),StringMid($sRer, 3, 1)) Then $js += 1
页:
[1]