Autor Beitrag
interessierter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Mo 20.02.12 22:56 
Hallo Zusammen

Ich befasse mich in meinem C# Lehrgang gerade mit Variabeln. Für das allgemeine Verständnis werde ich folgend kurz meine Aufgabenstellung schildern:

Ich ziehe im c# Visual Express via Drag&Drop einen Button in Form1.cs und beschrifte den Button mit Button 1. Anschliessend muss ich einen vorgegeben Code für diesen Button schreiben und vorhersagen was mir die MessageBox anzeigen wird ohne vorher zu debuggen.

Es geht hauptsächlich um while und for Schleifen.

Um vorherzusagen was die MessageBox anzeigen wird muss ich aber verstehen was der Code genau macht (rechnet) und dort liegt das Problem.

Kann mir jemand für folgenden Code erläutern wie der Code funktioniert resp. was und wie der Code genau rechnet:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
        private void button4_Click(object sender, EventArgs e)
        {
            int anzahl = 0;

            while (anzahl < 10)
            {
                anzahl = anzahl +1;
        }

            for (int i = 0; i < 5; i++)
            {
        anzahl = anzahl -1;
    }
            MessageBox.Show ("Die Antwort ist" + anzahl);
        }

    }
}

Liebe Grüsse
interessierter

Moderiert von user profile iconKha: C#-Tags hinzugefügt
daeve
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 116
Erhaltene Danke: 3

Windows (XP Pro, 7 Ultimate x64)
C#,WPF,Java,ASP.Net, VS 2010 Ultimate (x86)
BeitragVerfasst: Mo 20.02.12 23:54 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
        private void button4_Click(object sender, EventArgs e)
        {
            // definiert die Variable "anzahl" und weisst ihr 0 zu
            int anzahl = 0;

            //solange "anzahl" kleiner ist als 10 
              // rechne "anzahl + 1 und speichere das Resultat in die Variable "anzahl"
            while (anzahl < 10)
            {
                anzahl = anzahl +1;
            }
            // Was die for Schleife macht hoffe ich weisst du, sonst mach dich schlau...
            // was in der for Schleife gemacht wird ist ja fast das selbe wie oben...
            for (int i = 0; i < 5; i++)
            {
               anzahl = anzahl -1;
            }

            // Es wird ein String "Die Antwort ist" und nach dem String die Variable Anzahl ausgegeben.
            // jetzt musst du nur noch ausrechnen was die Variable für einen Wert hat.
            MessageBox.Show ("Die Antwort ist" + anzahl);
        }


hoffe das du jetzt den durchblick hast ;)
interessierter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Di 21.02.12 00:26 
Also wenn ich das richtig verstanden habe dann rechnet die While Schleife von 0 immer +1, solange der Wert <10 ist. Also 9 mal +1.

Von diesen 9 rechnet dann die for Schleife solange -1 bis der Wert <5 ist? Von 9 wären das dann 5 mal -1, so komme ich dann auf 4.

Zeigt die for Schleife an wieviel mal sie -1 rechnen musste? dann müsste das ergebnis ja 5 sein und die MessageBox müsste dan als Ergebnis 5 anzeigen.

Ich habe es versucht, und nach dem Debuggen zeigt es mir wirklich 5 an.

Wenn die for Schleife nur anzeigt wieviel mal sie -1 rechnen musste dann habe ich es wahrscheinlich verstanden.

Stimmt meine Aussage?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 21.02.12 07:25 
user profile iconinteressierter hat folgendes geschrieben Zum zitierten Posting springen:
Also wenn ich das richtig verstanden habe dann rechnet die While Schleife von 0 immer +1, solange der Wert <10 ist. Also 9 mal +1.
Die Schleife läuft solange wie anzahl < 10 ist. Bei 9 ist anzahl ja noch kleiner, also läuft die Schleife noch einmal durch, danach ist es 10, also nicht mehr kleiner. Daher wird die Schleife dann abgebrochen, der Wert ist dann aber 10.

user profile iconinteressierter hat folgendes geschrieben Zum zitierten Posting springen:
Von diesen 9 rechnet dann die for Schleife solange -1 bis der Wert <5 ist? Von 9 wären das dann 5 mal -1, so komme ich dann auf 4.
Die for-Schleife läuft so lange bis i < 5 nicht mehr wahr ist. Nach jedem Durchlauf wird zuerst i++ ausgeführt, dann die Bedingung geprüft.

Das ganze siehst du aber sehr gut im Debugger:

CSDebug

Den Haltepunkt oben kannst du mit einem Klick auf die Leiste links oder mit F9 setzen. Wenn das Programm dann beim Ausführen dort ankommt, kannst du mit F10 schrittweise durch den Quelltext laufen. Wenn du die Maus über eine Variable hältst, siehst du deren Wert, zudem siehst du unten die Werte der lokalen Variablen.
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: interessierter
interessierter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Mi 22.02.12 00:35 
Super, vielen Dank. Diesen Thread werde ich gleich mal als PDF speichern. Kann immer mal wieder nützlich sein :)

Grüsse
interessierter