[GELÖST] for schleife in while schleife und wieder zurück ?!
-
Naja, der startwert von i ist hier 150 und soll dann denk ich mal auch so bleiben...
Solange i > 0 ist wird die Schleife ausgeführt...
i wird jedes mal dabei um 30 kleiner...
Bis die Bedingung nichtmehr erfüllt wird...
Aber wie soll das mit einer for -Schleife gehen ?
-
Was sind denn die 3 Angaben, die im Kopf einer for-Schleife stehen?
-
for (<startwert>; <bedingung>; <befehl nach ausführung>) { // ... }
-
for( initialisierung; bedingung; inkrement)
also z.b for (i=0; i<5 ; i++)
-
faC1al schrieb:
for( initialisierung; bedingung; inkrement)
Nicht inkrement, sondern ein beliebiger Ausdruck. Also z. B. auch
for(int i = 0; i < 100; i += 10)
-
mhh also vllt in meinem fall so:
int i = 150; for (i = 150; i >0 ; i-=30) cout <<i << endl;Kommt mir aber recht spanisch vor

-
for (int i = 150; i >0 ; i-=30)So wäre es wohl üblicher. Aber so ist es richtig. Warum testet du es nicht einfach?

Gruß
-
faC1al schrieb:
for( initialisierung; bedingung; inkrement)
initialisierung; while (bedingung) { // ... inkrement; }edit: Oh, es war genau das umgekehrt gefragt
. Ich sollte die ersten Beiträge aufmerksamer lesen anstatt bloß die Überschrift und den letzten Beitrag
-
Wollte es testen und habe mal den rest hinzugeschrieben:
#include <iostream> using namespace std; int main (){ int i = 150; for (i = 150 ; i > 0 ; i -=30) cout << i << endl; } return 0; }Nun bekomm ich einen synthax Fehler bei "return 0;"..
P.S ich initialisiere immer alles vorher, weil es so immer in meinem c++ Buch steht
-
Deine Klammern passen nicht. Von deiner Einrückung her zu urteilen willst du nach for eine Klammer öffnen, tust du aber nicht.
edit: Ein Editor mit automatischer Einrückung und Klammerhervorhebung würde da gute Dienste leisten.
-
Oha, stimmt....
Super mal wieder vielen Dank an allen beteiligten...
Ich fasse nochmal zusammen wie man das Problem am besten löst:
Erst anschauen wie die Schleife funktioniert, die man gerade vor sich hat( Was passiert mit dem Startwert, wann terminiert die Schleife etc..).
Danach vergleichen mit den Eigenschaften in die man sie umwandeln will und einfach einsetzten
-
Wobei...
int i = 150; while (i >=0) { cout << i << endl; i -=30; }und
for (int i = 150 ; i > 0 ; i -=30) { cout << i << endl; }...nicht zur gleichen Ausgabe führen wird (>= 0). Im Grunde genommen muss es als falsch angesehen werden.