Zitat:
Zitat von Metal_Rex
Die Bedingungen in der Klammer versteh ich nicht so ganz.
Code:
(int i = 11; i >= 0; i--)
|
"int i = 11;" bedeutet, dass die Variable i als int deklariert und mit 11 initialisiert wird
"i >= 0;" die Schleife läuft so lange, wie i größer oder gleich 0 ist, erst wenn i < 0 bricht sie ab
"i--" ist das Gleiche wie "i = i - 1", dadurch wird vom i bei jeden Schleifendurchlauf 1 subtrahiert, i bekommt also die Werte 11, 10, 9, ...
Zitat:
Zitat von Metal_Rex
Code:
int i;
(i = 11; i >= 0; i--)
wäre das selbe?
|
Nicht ganz.
Wird die Variable vor der Schleife deklariert, ist sie dem Programm auch noch nach dieser bekannt. Beim obigen Beispiel ist sie nur in der Schleife bekannt.
In diesem Programm macht es von der Funktion her aber keinen Unterschied.
Zitat:
Zitat von Metal_Rex
die Verbindung zwischen dollars und Zahlen ist mir irgendwie unerklärlich. Woher weiß jetzt das Programm, dass es 2€ nehmen muss statt 0,50€?
|
Schau mal ganz oben im Code, da habe ich ein Array deklariert.
Code:
double dollars[12] = {0.01, 0.05, 0.10, 0.25, 0.50, 1, //Münzen
2, 5, 10, 20, 50, 100} ; //Scheine, keine 1$ Note
Das erstellt 12 Variablen mit dem Namen dollars, die über einen Index [] angesprochen werden.
Also: dollars[0], dollars[1], ..., dollars[11]
Diese Variablen erhalten die Werte in den Klammer dahinter in der angegebenen Reihenfolge.
Das ergibt:
dollars[0] = 0.01
dollars[1] = 0.05
...
dollars[11] = 100
Wäre i z.B. 5 und man würde auf dollars[i] zugreifen, würde man das 6. dollars ansprechen, also den Wert 1. Das "erste" Element ist das "nullte".
Da i am Anfang 11 ist, wird in der Schleife zuerst überprüft, ob played >= 100 ist.