| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| GimP 
 
 
 Anmeldungsdatum: 29.01.2016
 Beiträge: 4
 
 
 | 
			
				|  Verfasst am: 29.01.2016, 10:38    Titel: Ausbruch aus einer For Next Schleife |   |  
				| 
 |  
				| Hi Community 
 Nach etlichen Jahren habe ich mal wieder an basic gewagt.
 ICh bin unter einem anderen Nick hier schon vertreten, aber von 2004 und die Mail Adressen existieren nicht mehr, deshalb kann ich nicht mit meinem alten Nick hier Fragen stellen
   
 Ich möchte aus einer For to next schleife ausbrechen, bevor der to Wert erreicht wurde. Ich möchte also die schleife nicht "offen" lassen.
 Ich habe in Erinnerung, dass es dafür einen Befehl gibt.
 
 For t=1 TO A
 Bedingung 1 = Erfüllt : Return
 Bedingung 1 = nicht erfüllt
 Next
 
 Wenn die Bedingung nun erfüllt ist, geht er zwar in den Return, aber ein anderes NEXT im Programmcode würde dann ja auf die noch offene For Next schleife springen. Oder wenn nicht, würde ich die Offene ja ewig mitschleifen?
 
 Ich kann mich erinnern, dass es dafür einen Befehl gab, like:
 For t=1 TO A
 Bedingung 1 = Erfüllt : Befehl zum "For to next clear" : Return
 Bedingung 1 = nicht erfüllt
 Next
 
 So kann ich das ja nicht schreiben:
 For t=1 TO A
 Bedingung 1 = Erfüllt : NEXT: Return
 Bedingung 1 = nicht erfüllt
 Next
 
 Oder mache ich nen Denkfehler? Ich bin um jede Hilfe dankbar.
 
 @Edit ..
 
 EXIT FOR ???? (Wäre es so einfach? )
 
 Der Code nimmt das...
 For t=1 TO A
 Bedingung 1 = Erfüllt : EXIT FOR: Return
 Bedingung 1 = nicht erfüllt
 Next
 
 Kann ich irgendwie überprüfen, ob die auch wirklich geschlossen wurde?
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Elor 
 
 
 Anmeldungsdatum: 12.07.2013
 Beiträge: 205
 Wohnort: Konstanz
 
 | 
			
				|  Verfasst am: 29.01.2016, 11:19    Titel: |   |  
				| 
 |  
				|  	  | Zitat: |  	  | Ich habe in Erinnerung, dass es dafür einen Befehl gibt. | 
 Du meinst sicher "Exit For"
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| GimP 
 
 
 Anmeldungsdatum: 29.01.2016
 Beiträge: 4
 
 
 | 
			
				|  Verfasst am: 29.01.2016, 11:39    Titel: |   |  
				| 
 |  
				| Ja, lieben dank   
 Ich musste das umbauen. Nach dem EXIT FOR geht er nicht mehr aufs RETURN, sondern direkt hinter das NEXT
   
 For t=1 TO A
 Bedingung 1 = Erfüllt : EXIT FOR: Return
 Bedingung 1 = nicht erfüllt
 Next : Anweisung
 
 Das war etwas verwirrend..
 Aber ich hab es hinbekommen.
 
 Tip Top .. danke !
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| ThePuppetMaster 
 
  
 Anmeldungsdatum: 18.02.2007
 Beiträge: 1839
 Wohnort: [JN58JR]
 
 | 
			
				|  Verfasst am: 29.01.2016, 13:09    Titel: |   |  
				| 
 |  
				|  	  | Code: |  	  | for x as integer = 1 to 100
 if x < 10 then continue for 'sprung nach oben, zu FOR
 if x >= 30 then exit for 'schleife verlassen
 print x
 next
 
 | 
 
 MfG
 TPM
 _________________
 [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 29.01.2016, 14:02    Titel: |   |  
				| 
 |  
				| Das Herausspringen aus einer FOR..NEXT - Schleife mittels RETURN ist völlig unproblematisch, da beim Beenden eines Unterprogramms alle lokalen Variablen - also auch die Laufvariable der FOR..NEXT - Schleife - ungültig werden. 
 Außerdem ist selbst der QBasic - Interpreter in der Lage (der FB - Compiler sowieso), einem NEXT die korrekte FOR - Anweisung zuzuordnen, wie du am folgenden (QBasic-) Beispiel sehen kannst:
 Obwohl du mit GOTO aus der x-Schleife herausspringst, wird beim nächsten NEXT korrekt y weitergezählt. 	  | Code: |  	  | CLS FOR y = 10 TO 13
 FOR x = 1 TO 5
 PRINT "x"; x; y
 IF x > 2 THEN
 GOTO raus
 END IF
 NEXT
 raus:
 PRINT "y"; x; y
 NEXT
 
 | 
 
 Problematisch wird es erst, wenn du mit GOTO von außen in eine FOR...NEXT - Schleife hineinspringst. Aber solche "Kunststückchen" sollte man generell unterlassen...
 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Elor 
 
 
 Anmeldungsdatum: 12.07.2013
 Beiträge: 205
 Wohnort: Konstanz
 
 | 
			
				|  Verfasst am: 29.01.2016, 15:04    Titel: |   |  
				| 
 |  
				| Also wenn Du einfach eine FOR-Next-Schleife bedinkt verlassen willst bevor die TO-bedingung erreicht ist, liegst Du mit "Exit For" richtig. Wenn Du aber z.B. mit "GoSub" in einen Programmteil springst, in dem in einer "For-Next-Schleife" bedingt ein Ruecksprung durchgefuehrt werden soll, ist Return die richtige wahl. @grindstone hat das ja bereits beschrieben.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| GimP 
 
 
 Anmeldungsdatum: 29.01.2016
 Beiträge: 4
 
 
 | 
			
				|  Verfasst am: 29.01.2016, 15:46    Titel: |   |  
				| 
 |  
				| Prächtig. Auch nach 12 Jahren hat sich die Qualität der Antworten hier im Forum nicht verändert. 
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 29.01.2016, 16:30    Titel: |   |  
				| 
 |  
				| Ist das jetzt gut oder schlecht?   
 Gruß
 grindstone
 
 EDIT: Ui, ich sehe gerade: Mein 500. Beitrag
  _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| GimP 
 
 
 Anmeldungsdatum: 29.01.2016
 Beiträge: 4
 
 
 | 
			
				|  Verfasst am: 29.01.2016, 20:39    Titel: |   |  
				| 
 |  
				| Das war richtiggehend und aufrichtig Ehrlich. 
 Schon damals wurde mir unkompliziert geholfen, obwohl ich total in die Kathegorie:
 So programmiert man kein Basic
 gehöre
   
 Tip Top ..!
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Schnism 
 
  
 Anmeldungsdatum: 13.10.2004
 Beiträge: 58
 Wohnort: Schweiz
 
 | 
			
				|  Verfasst am: 29.01.2016, 23:51    Titel: |   |  
				| 
 |  
				| Und nach 12 Jahren Abwesenheit und vielen Gedächtnislücken habe ich (GimP / Schnism) auch meinen alten Account wieder. 
 Ich hoffe, ich werde euch nicht allzu oft nerven
  _________________
 "...nichts ist so schlimm wie mein programmcode!"
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 30.01.2016, 20:35    Titel: |   |  
				| 
 |  
				| Nur zu! Ich finde, das Forum kann etwas Belebung gebrauchen. 	  | Schnism hat Folgendes geschrieben: |  	  | Ich hoffe, ich werde euch nicht allzu oft nerven | 
   
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |