Schleife
-
Hallo,
ich habe folgenden Code:#include <iostream> // und so weiter int main() { bla(); // *1* // blablabla } // diese Funktion --> void bla() { // sie ruft sich selbst wieder auf }Wie schafe ich es jetzt, dass meine komplette Funktion abgebrochen wird zu einem
bestimmten Punkt und das Programm ab dem Punkt *1* weiterläuft?Mit break bricht sich anscheinend nur die Funktion in der Funktion ab.
Vielen Dank im Voraus!!!
-
Ich verstehe nicht ganz, was du meinst... Entweder du kannst mit "return" aus der Methode zurückkehren, oder eine Exception werfen.
-
Baue in bla() eine Verzweigungsmoeglichkeit ein, die nicht bla() aufruft und die auf jeden Fall irgendwann erreicht wird. Kleines Beispiel:
#include <iostream> void bla(int i) { if (i > 20) { std::cout << "i>20 - Abbruch!" << std::endl; return; //Funktion beenden OHNE erneuten Aufruf von bla() } std::cout << "bla(), i = " << i << std::endl; bla(++i); } int main() { std::cout << "## TEST bla(5) ###" << std::endl; bla(5); std::cout << "## TEST ENDE ######" << std::endl; }Ueberleg die erst selbst was die Ausgabe des Programms sein muesste und probiers dann selbst aus

Das Ganze nennt sich uebrigens "Rekursion" bzw. "rekursiver Funktionsaufruf", falls du bei google oder Wikipedia genaueres erfahren moechtest