Programmteile wiederholt ausführen

foxxx

Mitglied
Sorry, aber jetzt muß ich euch noch ein drittes Mal belästigen... :(

Dann denk ich ist mein erstes c++ Projekt aber abgeschlossen.

Mein Programm sieht nun vom Aufbau her prinzipiell so aus:

Code:
cout << "Bitte Wert eingeben";
cin >> x;
Umrechnung(x);
cout << y;


Nun würde ich am Ende gerne noch ein:
Code:
cout << "[J] für weitere Berechnung. Beliebige Taste zum Beenden";
cin >> j;

einfügen. Aber wie kann ich jetzt veranlassen daß für ein "j" wieder die Frage erscheint + Berechnung durchgeführt wird und für die andere Eingaben das Programm beendet wird?

Ich weiß daß es grundsätzlich auch innerhalb von c++ die Möglichkeit von Sprungmarken gibt. Aber ich weiß auch daß das nicht zu einem sauberen Programmierstil gehört drum würd ich es gern gleich "richtig" machen.

Hoffe ihr könnt mir nochmal helfen :)

Viele Grüße
 
Da bietet sich eine do-while-Schleife drumrum an.

Oben, wo er wieder beginnen soll, ein "do" und geschweifte Klammer auf, unten, nach dem cin >> j; ein while hin:


Code:
char   j;

do
{
  // mein Schleifeninhalt
 
  // schnippelschnappel
  cin >> j;
}
while ( j == 'j' );

Auf übersetzt heisst das, tue was im Block steht bis der Inhalt von j gleich 'j' ist. Ich gehe hier von der Annahme aus dass j vom Typ char ist und über dem do definiert wird.
 
Klasse! Danke Endurion!

Habs so gemacht wie du geschrieben hast.

Komm noch ein bischen durcheinander wann man etwas in " " und wann in ' ' setzen muß (weil einen Char schreibt man doch normal in " ", oder?), aber ich glaub das wird schon noch ;-)
 
Ein String wird in "" gesetzt, ein char (also ein einzelnes Zeichen) in ' '. Aber der Compiler weist einen ja immer drauf hin :)
 
Ja, wenn man mit den Antworten des Compilers mal gelernt hat was anzufangen :) Bin da noch in der Anfangsphase, aber es wird schon besser. In meinem Skript steht daß es in c++ keine Strings geben soll, nur Felder von Chars ( char String[] )
 
moin


Auch String-Klassen arbeiten mit char[] oder char *, bei denen es eine Anfangsadresse gibt und das Ende durch ein '\0' angezeigt wird.


mfg
umbrasaxum
 
Hmm... jetzt ist mir gerade aufgefallen daß das Programm aber nicht beendet, wenn ich etwas anderes als "j" eingebe.

Die letzten Zeilen:


do
{
.
..
...
while (j == 'j');

getchar();

return 0;

// ENDE
}


Gibt es einen Befehl der das Programm beendet? Wenn ich etwas anderes als "j" eingebe, wird zwar die Schleife nicht mehr durchlaufen, aber beendet auch nicht.
 
Zurück