Terenz Posted July 31, 2014 Share Posted July 31, 2014 (edited) Local $One = 1, $Three = 3, $Dinamic If $Three = 3 Then $One = $Dinamic EndIf ConsoleWrite("First For...Next: ") For $x = 1 To 10 $Dinamic = $x ConsoleWrite($One & "-") Next ConsoleWrite(@CRLF) ConsoleWrite("Second For...Next: ") For $x = 1 To 10 $Dinamic = $x If $Three = 3 Then $One = $Dinamic EndIf ConsoleWrite($One & "-") Next ConsoleWrite(@CRLF) Pratically in my original script if a checkbox was checked a value in the For...Next is different. The thing i want to avoid is the If...EndIf in the For...Next, but if i declare the variable before the For...Next ( $One = $Dinamic ) it not change in the loop. Any solution or i'm forced to check everytime in the loop the same thing? Thanks Edited July 31, 2014 by Terenz Nothing is so strong as gentleness. Nothing is so gentle as real strength Link to comment Share on other sites More sharing options...
j0kky Posted July 31, 2014 Share Posted July 31, 2014 I don't know what you do with $One and what happens if $three is different from 3, but in this case it works: If $Three = 3 Then ConsoleWrite("First For...Next: ") For $x = 1 To 10 $One = $x ConsoleWrite($One & "-") Next EndIf Spoiler Some UDFs I created: Winsock UDF STUN UDF WinApi_GetAdaptersAddresses _WinApi_GetLogicalProcessorInformation Bitwise with 64 bit integers An useful collection of zipping file UDFs Link to comment Share on other sites More sharing options...
Terenz Posted July 31, 2014 Author Share Posted July 31, 2014 (edited) Using your script i need to make two For...Next instead of one If $Three = 3 Then ConsoleWrite("First For...Next: ") For $x = 1 To 10 $One = $x ConsoleWrite($One & "-") Next Else ConsoleWrite("Second For...Next: ") For $x = 1 To 10 ConsoleWrite($One & "-") Next EndIf I'd like to make one For...Next without If...EndIf inside Edited July 31, 2014 by Terenz Nothing is so strong as gentleness. Nothing is so gentle as real strength Link to comment Share on other sites More sharing options...
j0kky Posted July 31, 2014 Share Posted July 31, 2014 (edited) without If...EndIf inside But... why? Edited July 31, 2014 by j0kky Spoiler Some UDFs I created: Winsock UDF STUN UDF WinApi_GetAdaptersAddresses _WinApi_GetLogicalProcessorInformation Bitwise with 64 bit integers An useful collection of zipping file UDFs Link to comment Share on other sites More sharing options...
Terenz Posted July 31, 2014 Author Share Posted July 31, 2014 If useless in my point of view Check for hundreds of times if $Three = 3 when i know before the loop if is equal or not of that value Nothing is so strong as gentleness. Nothing is so gentle as real strength Link to comment Share on other sites More sharing options...
j0kky Posted July 31, 2014 Share Posted July 31, 2014 (edited) I see three possible solutions: 1 you check $three first, but you have to write many loops as values $three can have 2 you check $three into the loop 3 you work with memory addresses instead of simple variables... But this is a madness. EDIT: I've made a test script and I discovered something I never expected: the first approach is 2,38x faster than the second! Obviously I considered millions of cycles, you can't ever notice the difference with a normal script... Local $a = 0, $b = 0, $c = 0, $timer = TimerInit() While $b < 100000 For $i = 0 To 10 If $a = 0 Then $c += 1 Else $c += 2 EndIf Next $b += 1 WEnd $diff1 = TimerDiff($timer) / 100000 Local $a = 0, $b = 0, $c = 0, $timer = TimerInit() While $b < 100000 If $a = 0 Then For $i = 0 to 10 $c += 1 Next Else For $i = 0 To 10 $c += 2 Next EndIf $b += 1 WEnd $diff2 = TimerDiff($timer) / 100000 ConsoleWrite($diff1 & @CRLF & $diff2 & @CRLF & ($diff1 / $diff2) & @CRLF) Edited July 31, 2014 by j0kky Spoiler Some UDFs I created: Winsock UDF STUN UDF WinApi_GetAdaptersAddresses _WinApi_GetLogicalProcessorInformation Bitwise with 64 bit integers An useful collection of zipping file UDFs Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now