Modify

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#2279 closed Bug (Rejected)

For loop not working as expected

Reported by: BrewManNH Owned by:
Milestone: Component: AutoIt
Version: 3.3.8.1 Severity: None
Keywords: Cc:

Description

Here's some code I came across that isn't working as it should, at least isn't working as I think it should work.

Global $Array[5] = ["AA", "BB", "CC", "DD", "EE"]
For $I = -1 To $Array
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $I = ' & $I & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
Next
Global $Array[5][2] = [["AA", "1"], ["BB", 2], ["CC", 3], ["DD", 4],["EE", 5]]
For $I = 10 To $Array
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $I = ' & $I & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
Next

The output from the code above, when run from SciTE, is this.

@@ Debug(7) : $I = -1
Error code: 0
@@ Debug(7) : $I = BB
Error code: 0
@@ Debug(7) : $I = CC
Error code: 0
@@ Debug(7) : $I = DD
Error code: 0
@@ Debug(7) : $I = EE
Error code: 0
@@ Debug(11) : $I = 10
Error code: 0
@@ Debug(11) : $I = 10
Error code: 0
@@ Debug(11) : $I = 10
Error code: 0
@@ Debug(11) : $I = 10
Error code: 0
@@ Debug(11) : $I = 10


The first value of $I is correct, it starts at whatever the For loop starts at, but then the For/Next loop starts acting like a For/In/Next loop. On a 2D array, the second section of code, it just loops for however many elements there are in the array, and the initial value of $I doesn't change.

I would have expected this to either error out, because it's referencing an array instead of a number, or run once because there's no end number to reach.

I have tested this code on 3.3.8.1, 3.3.6.1, and 3.3.9.5 and they all run the same way.

I don't think this should be working the way it is and appears to be a bug.

Attachments (0)

Change History (3)

comment:1 Changed 6 years ago by trancexx

Yes, it's a bug. The code isn't performing necessary type conversion. The fix is trivial.
Thanks for reporting.

comment:2 Changed 6 years ago by Jon

  • Resolution set to Rejected
  • Status changed from new to closed

comment:3 Changed 6 years ago by Jpm

I think the script must error as $array as no valid type conversion

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as closed The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.