这个循环应该怎样写最优?
循环10次,如果过程中满足条件1 或条件2 则跳出循环并执行命令A如果直至循环结束都没有满足任一条件,则执行命令2
for next 和 while哪个好 大概试了一下不知道可不可行
Local $i
For $i = 1 To 10
If (条件1 Or 条件2) Then
命令A
ExitLoop
EndIf
Next
If $i = 10 Then
命令2
EndIf Local $bool = False
For $i = 1 To 10
If (条件1 Or 条件2满足) Then
$bool = True
ExitLoop
EndIf
Next
If $bool Then
;命令1
Else
;命令2
EndIf 用for和while没有啥区别的,只循环10次 Local $Data1 = 3, $Data2 = 9;假设这是你的两个条件
For $i = 1 To 10
Select
Case $i = $Data1 ;条件一成立,跳出循环
MsgBox(0, '', '条件1成立')
ExitLoop
Case $i = $Data2 ;条件二成立,跳出循环
MsgBox(0, '', '条件2成立')
ExitLoop
EndSelect
Next
MsgBox(0, '', '执行下面语句')
上面基本实现,如果条件都不适合还是会执行后边的语句,所以要加判断。可以尝试用Do ... ... Until 本帖最后由 heroxianf 于 2016-9-1 11:45 编辑
回复 5# heroxianf
Local $Data1 = 32, $Data2 = 9;假设这是你的两个条件
For $i = 1 To 10
Select
Case $i = $Data1 ;条件一成立,跳出循环
MsgBox(0, '', '条件1成立')
ExitLoop
Case $i = $Data2 ;条件二成立,跳出循环
MsgBox(0, '', '条件2成立')
ExitLoop
Case Else
Exit
EndSelect
Next
MsgBox(0, '', '执行下面语句')
改了一下,也不完美,条件一不成立,二成立就直接退出了。{:face (197):} 指定次数了用for还行,while还要写 = 10 回复 7# 1361739590
你改改我的呢,第一个判断错误就直接退出了。有点不好。 回复 6# heroxianf
Local $Data1 = 32, $Data2 = 91 ;假设这是你的两个条件
For $i = 1 To 10
Select
Case $i = $Data1 ;条件一成立,跳出循环
MsgBox(0, '', '条件1成立')
ExitLoop
Case $i = $Data2 ;条件二成立,跳出循环
MsgBox(0, '', '条件2成立')
ExitLoop
EndSelect
If $i < 10 Then
Sleep(10)
Else
MsgBox(0, '退出提示', $i)
Exit
EndIf
Next
MsgBox(0, '', '执行下面语句')
这个貌似可以了。 回复 9# heroxianf
还是用一个flag比较好,3# 回复 10# 1361739590
貌似是有点便捷,看看能不能用到最近的任务中去。
Local $bool = False
For $i = 1 To 10
If $i = 32 Or $i = 9 Then
$bool = True
ExitLoop
EndIf
Next
If $bool Then
MsgBox(0, '1', $bool)
Else
MsgBox(0, '2', $bool)
Exit
EndIf
页:
[1]