Do Until und For Next

  • Hi, ich habe keine Ahnung wie For Next Befehl geht ich wollte Do Until weg machen und For Next anwenden. Ich habe gelesen, dass For Next empfohlen wird weil das schneller ist oder so. Auf jeden Testen kann mans ja mal.

    Möglich irgendwie zu ersetzen? Ich hab in meinen Script 2x Do Until drin

    [autoit]


    Func combo2()
    do
    sleep(1)
    $coord1 = PixelSearch( 660, 65, 665, 70, 0x892F00, 1)
    If Not @error Then
    If $coord1[0] & $coord1[1] Then
    MsgBox(0, "Test 1", "Color found!")
    endif
    endif
    Until isArray($coord1)
    do
    sleep(10)
    $bla = PixelSearch( 493, 62, 497, 80, 0x6E8900, 30)
    until isArray($bla)
    MsgBox(0, "Test 2", "Color found!")
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    In erster Linie unterscheidet man nach Anwendungsfall:
    For-Next ist kopfgesteuert, d.h. eine Bedingung muß erfüllt sein, dann wird in die Schleife eingetreten und ausgeführt solange die Bedingung wahr ist.
    Do-Until ist fußgesteuert, d.h. die Schleife wird mindestens einmal ausgeführt und erst beendet, wenn die Austrittsbedingung erfüllt ist.

  • Danke hat sehr geholfen. Hab jetzt hinbekommen.

    [autoit]

    Func combo2()
    $r = 1
    for $i = $r to 1 step -1
    $coord1 = PixelSearch( 660, 68, 665, 70, 0x892F00, 3)
    if not isArray($coord1) then
    $i = 2
    endif
    next
    MsgBox(0, "Test 1", "Color found!")

    $r = 1
    for $i = $r to 1 step -1
    $bla = PixelSearch( 493, 62, 497, 80, 0x6E8900, 30)
    if not isArray($bla) then
    $i = 2
    endif
    next
    MsgBox(0, "Test 2", "Color found!")
    EndFunc

    [/autoit]

    Leider musste ich auch hier IF anwenden

  • Hi,

    Kopfgesteuert:
    While: solange bis Bedingung falsch ist
    For: zählschleife mit begrenzter Zahl an Durchläufen

    Fuß gesteuert:
    Do While: solange bis Bedingung falsch ist. Anwendung z.B. bei Menüs

    MaZy So wie du die For Schleife benutzt ist das Programm nicht sehr sicher. Bei deine Anwendung empfiehlt sich ehr die do While Schleife.

    MFG RAPTOR-ONE