Wie programmiere ich mehrere Runden in C++?

4 Antworten

Du könntest eine for-Schleife verwenden ... diese lässt einen Abschnitt des Quellcodes so oft wiederholen, bis eine bestimmte Bedingung zutrifft:

for (int i = 1; i++; i > 12)
{
   // Dies wird 12-mal wiederholt.
}

Den Kommentar könntest du jetzt durch deinen Code vom ersten bis zum letzten cout ersetzen.

Auch könntest du die Anzahl der Wiederholungen variabel machen. Dafür bietet sich aber eher eine do-while-Konstruktion an:

string antwort;
do
{
   // Dies wird mindestens einmal aufgerufen.
   cout << "Revanche?";
   cin >> antwort;
} while (cin == "Ja")

Lies dir auch gern noch mal diesen Artikel zur for-Schleife auf MSDN [https://msdn.microsoft.com/de-de/library/b80153d8.aspx], diesen zur do-while-Schleife [https://msdn.microsoft.com/de-de/library/b0kk5few.aspx] durch oder schau dir einige dieser Abbildungen an: https://www.google.de/search?q=for+loop&tbm=isch Zumindest mir erscheinen die alle gut :)

Ich hoffe, ich konnte dir helfen. :-)
Frag auch gern noch mal nach :)

Mit freundlichen Grüßen,
KnorxThieus (♂)

Woher ich das weiß:Studium / Ausbildung – Studiere Informatik und programmiere aus Leidenschaft
EightSix  18.05.2016, 13:21

i < 12 soll das heißen. Die Bedingung muss wahr sein damit die Schleife durchlaufen wird.

1

Eine Schleife oder du machst es rekursiv. Also im return die Funktion erneut aufrufen. Ich glaube dazu müsstest du aber noch ein paar Änderungen an der Programmstruktur vornehmen.

Laserpeter 
Fragesteller
 18.05.2016, 12:26

Ich habe den code hier eingefügt. die struktur hat sich von selbst geändert. Eigentlich hab ich es viel ordentlicher. Aber danke ich werde es mit der while schleife versuchen

0
Ruffy5286  18.05.2016, 12:28
@Laserpeter

Mit struktur meinte ich nicht die Einrückung, aber ok. Ich meinte eher mehrere Funktionen, anstatt einer Main...

0
3v1lH4x0R  18.05.2016, 12:31

"Im return" ist erstmal bullshit. return ist eine Anweisung und bis diese abgearbeitet ist kann man nix mehr machen. 2. Rekursiv ist für diesen Anwendungszweck: bullshit. Wozu 'n Stackoverflow provozieren?

0
Ruffy5286  18.05.2016, 12:49
@3v1lH4x0R

Um es mal anzumerken. Ich hab nicht allzu viel Erfahrung mit c++ nur c, Java, Python und ein wenig php.... und natürlich brainfuck, aber das ist wieder was anderes.

Normaler Weise ruft man im return-Statement die Methode nocheinmal selbst auf, zumindest bei c, wenn man etwas rekursiv lösen möchte. Natürlich muss man darauf achten, dass man letzendlich den richtigen Datentyp zurückgibt und man keinen Stackoverflow provoziert. Kann man ja auch verhindern, dass es zu einem Stackoverflow kommt. Eine Abbruchbedingung sollte man auch nach Möglichkeit nicht vergessen.

Es ist ja auch nur eine Alternative zu den Schleifen. Rekursion ist nicht immer geeignet, aber man sollte es als Anfänger vielleicht an möglichst einfachen Beispielen ausprobieren, bevor man dann irgendwann 10 ineinander verschachtelte Schleifen hat und nicht mehr weiß, wo man eigentlich ist.

0
EightSix  18.05.2016, 13:22
@Ruffy5286

Um eine Methode aufzurufen, ob rekursiv oder nicht, ist definitiv kein return notwendig.

0
FooBar1  18.05.2016, 15:01
@Ruffy5286

Rekursion bei soetwas trivialem zu verwenden und zu meinem man würde einem Anfänger was gutes tun ist blödsinn. Das ist so als müsste jemand ohne handwerkliche erfahrung einen Nagel in die Wand hämmern und du gibst ihm nen Nagelpistole anstatt, dass er mit nem Hammer umgehen lernt. Rekursion kommt früh genug.

0

Warum hast du die für C++ für den Anfang entschieden? Magst es direkt schwer haben? 

Zu deiner Frage: mach eine endlosscheife um alles. Unten fragst du dann ab ( benutzereingabe) ob man weiterspielen will und brichst aus wenn man nicht will.

Übrigens sind funktionen praktisch. Probier sie mal aus.

Laserpeter 
Fragesteller
 18.05.2016, 14:50

Danke, habs jetzt geschafft. Der grund warum ich c++ genommen habe ist weil ich öfters gehört habe das dies die mächtigste Sprache sei und wenn ich diese Sprache kann der umstieg auf eine andre Sprache viel leichter wäre. Nach c++ würde ich noch gerne Java programmieren.

0
FooBar1  18.05.2016, 14:55
@Laserpeter

Mächtig, aber viel zu groß um es als anfangsprache komplett zu beherrschen. Deswegen gibt man Kindern auch keinen wissenschaftlich grafischen Taschenrechner mit wenn sie das 1x1 üben. Lerne lieber mit einer einfachen Sprache wie Python oder Ruby und arbeiter dich hoch. Java ist auch sehr populär, aber auch da wäre es toll wenn du schon etwas erfahrung in anderen Sprachen hast. 

0
Laserpeter 
Fragesteller
 18.05.2016, 16:44
@FooBar1

Python hat mir persönlich nicht so gefallen. Deshalb werde ich java ausprobieren und schauen wie es mir so gefällt.

0
FooBar1  18.05.2016, 16:46
@Laserpeter

Jupp mach das. Ein Blick auf Ruby schadet aber auch nicht. Ist eine Scriptsprache wie Python, aber die einrückung spielt keine Rolle. Scriptsprachen sind erstmal einfacher auszuführen und einfacher zu debuggen, benötigen aber meistens nicht eine komplette Entwicklungsumgebung wie etwa java oder c# (wenn du auf windows unterwegs bist auch eine gute alternative)

0