?
Hallo,
wenn du bei "Tomatensuppe" angekommen bist, dann war das Programm gerade in diesem if hier:
if (getraenk == 6)
{getraenke_art = "Tomatensuppe";
printf ("%s, noch %d Portionen (schwach) uebrig\n",getraenke_art,tomatensuppe_behaelter);
}
d.h., getraenk hat den Wert 6, und der else-Zweig hier:
else
{getraenk = 0; //wenn variable "getränk" auf den wert 6 springt, wird getränk auf 0 gesetzt
}
wurde noch nicht erreicht (gehört zu einem anderen if).
Dann wird wieder eine Eingabe hier:
a = getch();
erwartet, a wird zwar wieder '1', aber getraenk hat sich nicht verändert, steht immer noch auf 6, deswegen wird erst jetzt, nach dem die Bedingung:
if (getraenk != 6)
nicht zutrifft, der oben erwähnte else-Zweig erreicht, in dem getraenk auf Null gesetzt wird. Also kann auch erst jetzt nach erneuter Wahl von '1' erkannt werden, dass
if (getraenk != 6)
erfüllt ist, weswegen
getraenk = getraenk + 1;
dazu führt, dass getraenk erst jetzt zu Eins wird, womit es zur "verzögerten" Auswahl von Kaffee kommen muss.
MfG,
Probe-Nutzer