Warum ist das eine while und keine for-Schleife? Woran erkenne ich das?

8 Antworten

Das kannst du sogar wirklich übersetzen wenn du willst. Die Bedingung lautet ja während/solange die Strecke unter 50 ist, dann mach irgendetwas. Während heißt auf Englisch übersetzt while.

Du hast den initializer, die condition, den body und den incrementor! Das ist ganz klar ne for schleife.

for (strecke = 0; strecke < 50; strecke++) {
    fahren(1);
    anzeigen();
}
Woher ich das weiß:Hobby

Der Vorgang wir doch solange wiederholt, bis eine Bedingung erfüllt ist. Also while bzw. während es unter 50 ist, passiert das...

In dem Fall kannst Du eine While oder eine For Schleife verwenden. Das Flussdiagram ist allgemein für alle Programmiersprachen, wie man das dann schreibt hängt von der Programmiersprache ab.

Eine FOR Schleife zählt stur durch und läuft eine festgelegte Anzahl an Durchläufen.

Eine WHILE Schleife hat eine Bedingung unter die die immer wieder ausgeführt wird. Ist diese Bedingung nicht erfüllt, wird die Schleife nicht (mehr) ausgeführt.

In diesem Fall geht beides, denn hier wird eine Variable (strecke) hoch gezählt, die Schleife also gezielt von 0 bis 49 hoch gezählt.

Ob man

strecke = 0;
  while(strecke<50)
  {fahren(1);
   anzeigen();
   strecke ++;
  }

schreibt oder

for (strecke = 0; strecke <50; strecke ++)
{
 fahren(1);
 anzeigen();
}

schreibt ist völlig egal!

Woher ich das weiß:Berufserfahrung

"Warum ist das eine while Schleife und keine For Schleife?"

Wer sagt das? Wenn das jemand behauptet, hat das Konzept von Flussdiagrammen nicht verstanden.

"Woran erkenne ich das?"

Das ist ja genau das Problem. Man kann es objektiv nicht erkennen.

Dieses Flussdiagramm ist als for-Schleife genauso lösbar wie als while-Schleife. Zumindest, wenn es nicht noch Randbedingungen gibt, die du verschweigst.

"Warum ist das eine while Schleife und keine For Schleife?"

Diese Frage ist "nicht entscheidbar".