For-Schleife vorzeitg verlassen

  • Hallo Leute

    Ich hab mehre geschachtelte For-schleifen und If-Anweisungen.

    Wenn die If-Anweisung erfüllt ist, soll die fro-Schleife beendete werden. Wie mache ich das am besten.

    Hof ihr versteh das Problem und wisst rat

    Jessica

  • For Schleifen haben eigentlich eine eigene Bedingung, die bestimmt, wie lange sie laufen bzw. wann sie abbrechen. Ich bin mir zwar nicht sicher, glaube aber nicht, dass sich das in eine if Schleife packen lässt. Damit kannste halt max. steuern, ob eine for Schleife überhaupt gestartet wird. Was willst du denn machen? Reicht denn die for-Bedingung nicht aus für deine Zwecke?


  • Salut,

    du solltest immer angeben, auf welche Programmiersprache du dich beziehst. Soweit ich das aus deinen Postings herausgelesen habe, verwendest du ja nicht nur JavaScript, sondern auch PHP.

    In vielen Programmiersprachen gibt es für den Sprung aus einer for-Schleife die Anweisung break. Das würde z.B. auch in der Dokumentation der Programmiersprache stehen ;).


    Stefan

  • Es gibt durchaus Situationen, in denen man eine Schleife abbrechen will bevor der Schleifenkopf erfüllt wurde, dies geschieht zum Beispiel wenn man Werte aufaddiert und eine bestimmte Summe braucht, um ein Ereignis auszulösen.

    von der Struktur muss es dann lauten
    for( Bedingung) {

    if(Abbruchbedingung){
    return; // alternativ break
    }

    }

    Ob du im Rückgabewert noch was stehen hast kommt auf die Art der Methode an

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Hallo

    Verwende nur JavaScript.

    Ich habe mehre Arrays. Und mit einer for-Schleife druchlaufe ich diese Arrays, wird der entsprechende eitrag gefunden wird die If-Anweisung ausgeführt. Wenn die If-Anwweisung ausgeführt wurde, soll die For-schleife verlassen werden, da kein weiter Eintrag mit der gleichen Bedingung existiert.

    Dachte mir halb das durch so eine Abbruchbedingung der for-Schleife die Abbarbeitung meiner Javascript-Funktion schneller wird.

    Habe zwei verschachtelte forschleifen. Die erste lauft über die Länge eines Arrays und die andere Forschleife lauft über ein anderes Array. Mittels if werden werdn die Wert der ersten For-schleife mit den Werten der zweiten verglichen. Wird eine Übereinstimmung gefunden soll halt die zweite forschleife verlassen werden. Soll heißen wenn die If-Anweisung aus geführt wurde.

    Das ich break verwende ist ir klar. Nur wenn ichs in der If-Anweisung angebe wird diese verlassen. Geb ichs in der for-Schleife an, wird diese beim erreichn von break verlassen unabhängig ob die If-Anweisung ausgeführt wurde oder nicht.


    Hof ihr könnt mir nochmal helfen

    Jessica

  • Salut,

    break verlässt die jeweils übergeordnete Schleife. Wenn du also zwei verschachtelte Schleifen hast, wird nur aus der ersten gesprungen. Du könntest zusätzlich eine weitere Variable verändern, sodass die äußere Schleife dann auch verlassen wird (wieder mit break).

    Evtl. kannst du auch return einsetzen (siehe KYLT), dabei wird die komplette Funktion verlassen.


    Stefan

  • Hallo

    mit return funktioniert leider nict da ich nicht die gesamte funktion verlassen möchte.

    Code
    for(...){
      for(...){
        if(){
          Bedingung erfüllt -> zweite for-Schleife verlassen und erste for schleife Weiter ausführen.
        }
      }
    }

    So ist meine Struktur. Mit brak in der If-Anweisung wird diese verlassen, ber nicht die zweite for-Schleife. wie müsst ich das mit der zusätzlichen Variablen machen

    Und danke schonmal für die Hilfe

    Jessica

  • dann setz einen boolean wert vor der for-schleife und stell diesen, wenn die bedingung in der if erfüllt ist auf false

    dann musst du nur noch zB mit
    if(gehrausda) {
    break;
    }
    die for-schleife beenden

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • bsp:

    Code
    for(){
    
    
    for(i=0;i<5;i++){
    
    
    if ( ) { i=999999} // !!!
    
    
    }}


    in der if wird iterationsvariable einfach über das "limit" gesetzt. damit ist die bedingung der zweiten for schleife nicht mehr erfüllt und wird somit auch nicht mehr ausgeführt.

    in deinem konkreten fall musst du dir noch einen konkreten wert für i in der if einfallen lassen.
    bsp: i=len(array2)+1 (JS hat wohl nicht genau diese syntax(?))