Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Schleife » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Schleife
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
filli122
unregistriert
Schleife Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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!
04.02.2016 17:34
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
04.02.2016 17:41 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
filli122
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Aber mein i ist doch 0... Wieso ist dann meine erste Zahl die 1?
04.02.2016 17:48
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Weil es in der Bedinungen beim while erhöht wird.
Und das passiert vor der Ausgabe, also ist das i bereits 1.

__________________
Syntax Highlighting fürs Board (Link)
04.02.2016 17:51 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
filli122
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ah okay, also auch wenn dort nicht ++i sondern i++ stehen würde, wäre meine erste Zahl die 1... danke! smile
04.02.2016 18:09
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
04.02.2016 22:00 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Schleife