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.
filli122
ah okay, also auch wenn dort nicht ++i sondern i++ stehen würde, wäre meine erste Zahl die 1... danke!
eulerscheZahl
Weil es in der Bedinungen beim while erhöht wird.
Und das passiert vor der Ausgabe, also ist das i bereits 1.
filli122
Aber mein i ist doch 0... Wieso ist dann meine erste Zahl die 1?
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.
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!