[已解决] 一个变量两个值变换,请问有没有此类函数或如何简化?
本帖最后由 chishingchan 于 2016-10-23 13:37 编辑For 内循环:当 $S = B 时,设置 $S = A,当 $S =A 时,设置 $S = B$S = "B"
If $S = "B" Then
$S = "A"
ElseIf $S = "A" Then
$S = "B"
EndIf可不可以简化点(或能不能一行代码完成)?谢谢! 本帖最后由 heroxianf 于 2016-10-22 23:53 编辑
最近在用这个 return 推荐一下。
Local $Data = 'A' ;具体内容你自己设定
MsgBox(0, '', _Test($Data))
Func _Test($a)
Select
Case $a = 'A'
$a = 'B'
return $a
Case $a = 'B'
$a = 'A'
return $a
EndSelect
EndFunc ;==>_Test 这个貌似也不错~
Local $Data = 'Bd' ;具体内容你自己设定
MsgBox(0, '', _Test($Data))
Func _Test($a)
Select
Case $a = 'A'
$a = 'B'
return $a
Case $a = 'B'
$a = 'A'
return $a
Case Else
Return '没有你想要的结果'
EndSelect
EndFunc ;==>_Test 练练手~ 见笑了
Local $Data = '是', $Data1 = '否' ;自由设置对比数据
Local $S = '是'
MsgBox(0, '', _Test($Data, $Data1, $S))
Func _Test($a, $b, $c)
Select
Case $s = $a
$s = $b
return $s
Case $s = $b
$s = $a
return $s
Case Else
Return '没有你想要的结果'
EndSelect
EndFunc ;==>_Test
本帖最后由 haijie1223 于 2016-10-23 11:39 编辑
你代码中的 elseif 可以改成 else,可以减少代码输入。
如果是用函数,可以这样
$S='B'
$S=_myfuc()
Func _myfuc()
if $S=='B' then retrun 'A'
retun 'B'
Endfunc
手机打字好累。。。 回复 5# haijie1223
学习 我觉得只限定一行代码很难为人,即使定义一个函数,都多于一行代码了.MsgBox(0, _go('B', -1), _Go('A', 1))
Func _Go($char, $iSwitch)
Return Chr(Asc($char)+$iSwitch)
EndFunc
谢谢各位的解答,受教了! 回复 7# Alam
不错的代码,不过楼主似乎只关心$S这个变量的自动换值,如果用这种写法函数的话,还要每次都要指定参数的值才可以达到转换。
当然不同的场合用法不同,代码思路很不错。 回复 5# haijie1223
for $i=1 to 10
if $S='B' then $S='A'
if $S='A' then $S='B'
next
感觉不对!两个IF语句放在一起,实际结果应该是:$S='B'。 自己总结一下:以下结果是:ABABAB,符合要求了。Global $S = 'B'
MsgBox(0,"",_LRS())
MsgBox(0,"",_LRS())
MsgBox(0,"",_LRS())
MsgBox(0,"",_LRS())
MsgBox(0,"",_LRS())
MsgBox(0,"",_LRS())
Func _LRS()
If $S = 'B' Then
$S = 'A'
Else
$S = 'B'
EndIf
Return $S
Endfunc 不知这个语句 "" 补充一下对于一行代码有没有可能? 本帖最后由 haijie1223 于 2016-10-23 11:38 编辑
回复 10# chishingchan
嗯,确实如此,失误 不知用处,三目(三元)有没有用? 回复 14# afan
三目有点问题,返回 true 或 false,不给其赋值。我试过不行,不知道是不是我写错了。
页:
[1]
2