Innerhalb des Programms springen - C

Hallo,
ich bin hier neu und hab gleich mal eine Frage. Ich hab vor kurzem begonnen mir etwas C beizubringen. Zu jedem Beispiel in meinem Buch fallen mir immer irgendwelche, aus meiner Sicht, sinnvolle Erweiterungen an. Hab das bisher auch immer per google lösen können, nur dieses Mal weiß ich nicht, was ich da eigeben könnte. Hier mal der Code:
Code:
#include <stdio.h>

main ()
{
	int wahl;
	float betrag;
	printf("\n\tEURORECHNER\n");
	printf("\n1 \tDM\t--> EURO\n2 \tEURO\t--> DM");
	printf("\n\nIhre Wahl: ");
	scanf("%i",&wahl);
	if (wahl == 1)
	{	printf("Bitte DM-Betrag eingeben: ");
		scanf("%f",&betrag);
		printf("\n%.2f DM sind %.2f EURO",betrag,betrag*0.51129);
	}
	if(wahl == 2)
	{	printf("Bitte EURO-Betrag eingeben: ");
		scanf("%f",&betrag);
		printf("\n%.2f EURO sind %.2f DM\n",betrag,betrag*1.95583);
	}
	if (wahl >=2)
	{	printf("\nFehlerhafte Eingabe, bitte 1 für DM oder 2 für ?");
		
	}
	return 0;
}
Die letzte Schleife hab ich eingefügt, und ich will, wenn der Benutzer eine Zahl eingibt die größer wie 2 ist, dass dann ""printf("\nFehlerhafte Eingabe, bitte 1 für DM oder 2 für ?");" ausgegeben wird und das Programm zurück zu "printf("\n\nIhre Wahl: ");" springt. Das soll solange gehen, bis der User eine korrekte Angabe (1 oder 2) macht.
Ich bin mir sicher, dass das für euch kein Problem ist, nur wie gesagt, ich weiß einfach nicht, wie man sowas nennen soll. Danke schon mal für eure Hilfe.

Gruß casio
 
probiere doch mal, den interessanten teil in eine while-schleife zu packen und dann einfach ne abbruchbedingung zu machen.

also sowas wie
Code:
while(abbruch == False)
{
      printf("\n\nIhre Wahl: ");
      ...
}

dabei dann och an einer passenden stelle abbruch auf true setzen und du verlässt die schleife.
 
Hallo,
wobei erwähnt werden sollte, dass es in C keine boolschen Werte gibt, also kein true/false gibt.
Statt dessen verwendet man meistens eine 0 für false und eine 1 für true, die man dann sogar ggf. als true/false definieren könnte.

Aber sonst wie lightsaver sagte, am besten eine do-while Schleife verwenden, und als Argument überprüfen, ob die Eingabe > 2 war.
 
Zudem wäre das ganze imo in einem switch Statement schöne untergebracht.
Was ist eigentlich wenn der Benutzer 0 eingibt ?

@lightsaver
Afaik gibt es in ANSIC noch keinen Datentyp Boolean.

//Edit: war wohl zu langsam :D
 
das war auch mehr als pseudo-code zu verstehen, damit er sieht, worauf ich hinaus will. sonst könnt ich ihm ja gleich ne lösung schreiben ;)
 
Zurück
Oben