-         

Ergebnis 1 bis 7 von 7

Thema: Schleife mit mehreren "iterations-variablen"

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2009
    Beiträge
    29

    Schleife mit mehreren "iterations-variablen"

    Anzeige

    Hallo,

    ich möchte eine Schleife bauen, in der in jedem Schleifendurchlauf nicht nur die eigentliche Schleifenvariable I, sonder auch ein weiterer Integer J verändert wird. Bei den 3 Durchläufen soll sein:
    I=1, J=1
    I=2, J=5
    I=3, J=9

    Ich habe das jetzt folgendermaßen gelöst:
    Code:
    For I = 1 To 3
          Select Case I
             Case 1
                J = 1
             Case 2
                J = 5
             Case 3
                J = 9
          End Select
    
             *Befehle, die I und J benutzen*
    
    Next I
    geht das auch eleganter, zB mit zwei variablen direkt in der for-zeile?

    Beste Grüße,
    Benjamin

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    "FOR" (bei Bascom) geht nur mit einer Variable
    Anders geht's aber natürlich immer, z.B:
    Code:
    For I = 1 To 3 
          J = LOOKUP( I , FOR_TAB)
             *Befehle, die I und J benutzen* 
    Next I 
    
    FOR_TAB:
         DATA   0, 1, 5, 9
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2009
    Beiträge
    29
    das sieht auf jeden fall schonmal kompakter aus. Ich werds erstmal so umsetzen, danke!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Code:
    J=1
    For I = 1 To 3      
            *Befehle, die I und J benutzen*
            j=j+4
    Next I
    Das geht für deine Zahlen natürlich auch.

    Gruß

    Rolf

  5. #5
    gibt es keine möglichkeit j aus i zu berechnen:

    zb: j = 1 + i * 4

    i=1 --> j=1
    i=2 --> j=5
    i=3 --> j=9

    ich wieß nicht wie die folge wieter geht aber für die drei Fälle stimmt die Formel

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2009
    Beiträge
    29
    die folge geht garnicht weiter, bei I=3 ist bei mir schluss.
    Ich hab nicht wirklich eine idee, wie ich die verschiedenen varianten bewerten soll, ich schätze mal, dass die von for_ro am schnellsten läuft... also werd ich die wohl auch nehmen.

    Danke nochmal für eure Hilfe,

    Benjamin

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Da ist ein Unterschied zwischen elegant und schnell

    Bei nur 3 Fällen ist am schnellsten, wenn es auch barbarisch aussieht
    Code:
    I = 1
    J = 1
    gosub I_J_ROUTINE
    I = 2
    J = 5
    gosub I_J_ROUTINE
    I = 3
    J = 9
    gosub I_J_ROUTINE
    Die "FOR" Konstruktion und das Berechnen von J braucht mehr Code, als man glaubt.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •