Schleife

Neue Frage »

Auf diesen Beitrag antworten »
filli122 Schleife

Meine Frage:
Hallo,

wenn ich folgende Schleife gegeben habe:

int i = 0
while(++i < n){
i}

ist mein i dann innerhalb der Schleife noch mein Ausgangs- i (also 0) oder schon das um eins erhöhte i (also 1, da die Schleife ja solange läuft, bis i erhöht um 1 kleiner als n ist) ?

Meine Ideen:
Ich hoffe meine Frage ist verständlich,
vielen Dank schon mal für eure Hilfe!
 
Auf diesen Beitrag antworten »
eulerscheZahl

Erst wird die Eintrittsbedingung ausgewertet (also auch i erhöht), und dann in den Block gegangen.
Das kannst du auch ganz einfach ausprobieren:
code:
1:
2:
3:
4:
5:
6:
7:
8:
#include <stdio.h>

int main() {
	int i = 0;
	while (++i < 3) {
		printf("%d ", i);
	}
}

Ausgabe: 1 2
machst du das ++i zu i++, gibt es noch eine 3 zusätzlich in der Ausgabe. Der erste Ausgabewert ist aber weiterhin 1.
Auf diesen Beitrag antworten »
filli122

Aber mein i ist doch 0... Wieso ist dann meine erste Zahl die 1?
Auf diesen Beitrag antworten »
eulerscheZahl

Weil es in der Bedinungen beim while erhöht wird.
Und das passiert vor der Ausgabe, also ist das i bereits 1.
 
Auf diesen Beitrag antworten »
filli122

ah okay, also auch wenn dort nicht ++i sondern i++ stehen würde, wäre meine erste Zahl die 1... danke! smile
Auf diesen Beitrag antworten »
eulerscheZahl

Die erste Zahl ist in beiden Fällen die 1.
Ob i++ oder ++i dasteht hat nur einen Einfluss auf die letzte ausgegebene Zahl.
Aber wie gesagt: probier es einfach aus.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »