Forum: PC-Programmierung For-Schleife - Verständnisfrage


von Denis (Gast)


Lesenswert?

Hallo liebe Community,
ich habe folgendes Programm :

 // AUFAGBE 2: Welche Ausgabe erzeugt das nebenstehende Programm in 
seiner //letzten Zeile? Stellen Sie dazu eine Wertetabelle für i und n 
auf.
1
  
2
3
      #include <stdio.h>
4
5
6
   void main()
7
       {
8
9
10
       int n=0, i=0;
11
12
       for(i=0;i<30;i++)
13
      {
14
        if(i>20)break;
15
        n+=100;
16
        if(i<10)continue;
17
        n-=100;
18
               }
19
         printf("%i\n",n);
20
      }
    // Lösung AUFGABE2:

    // i      n
    //----------------
    // 0    0
    // 0    100
    // 1    200
    // 2    300
    // 3    400
    // .    .
    // .    .
    // 9    1000
    // 10    1100
    //----------------
    // 1000
    // 10    1000
    // 11    1100
    // 11    1000
    // 12    1100
    // 12    1000
    // .    .
    // .    .
    // 19    1100
    // 19    1000
    // 20    1100
    // 20    1000
    //----------------
    // 21 break ist wirksam, die
    //  Schleife wird verlassen,
    //  obwohl sie noch nicht zu
    //  Ende ist (geht bis 30).
    // ---> Ausgabe 1000


Dass bei 20 Schluss ist, ist mir klar.
Allerdings verstehe ich nicht, wie die n Werte zustande kommen.
Wie kann 0 laut Musterlösung zwei Werte annehmen (0 und 100) ?
Wird das n-=100; durch continue übersprungen?

von Lang (Gast)


Lesenswert?

Erstes "0" ist Startbedingung vor der Schleife. Zweites im ersten 
Schleifendurchlauf.

Ja, continue sagt aus, dass ein neuer Schleifendurchlauf durchgeführt 
werden soll, ohne nachfolgende Befehle zu beachten.

von Rene K. (xdraconix)


Lesenswert?

Oh das mit dem "continue" wusste ich auch noch nicht, danke.

von Rainer V. (rudi994)


Lesenswert?

Dieselbe Aufgabe auf den Tag genau vor einem Jahr:
Beitrag "Letzte Verständnisfrag"

von Markus (Gast)


Lesenswert?

Denis schrieb:
> Dass bei 20 Schluss ist, ist mir klar.
Echt? Nicht erst bei 21?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.