Grundlagen Teil 2 - Mehrfachausführung

Zu Beginn von Grundlagen Teil 2 werden wir uns mit der Mehrfachausführung von Codeabschnitten befassen.
Ein einfaches Beispiel wäre die Ausgabe der Zahlen von 1 bis 100.
Programmelemente, welche eine gewisse Anzahl an Wiederholungen eines Codeabschnittes ermöglichen, nennt man Schleifen. Vorerst werden wir die zwei wichtigsten Typen kennenlernen.

Die for Schleife

Eine for Schleife arbeitet nach folgendem Prinzip.
Es gibt eine Schleifenvariabel, diese wird mit einer vorgegebenen Schrittweite hoch / runter gezählt, bis eine vorgegebene Bereich verlassen wird. In den meisten Fällen, ist eine Schleifenvariable vom Typ int und wird hochgezählt, daher erfolgt die Erklärung an einem solchen Typ. Eine for Schleife die hinunter zählt funktioniert identisch und sollte daher selbsterklärend sein.

Einfacher ausgedrückt gibt es eine int Variable, welche vorgebgeben wird, aber nicht 0 sein muss. Diese wird hochgezähl bis der vorgegebene Bereich verlassen wird. Intern erfolgt eine Art if - Abfrage. Wenn der vorgegeben Bereich verlassen wird, wird die Schleife beendet.
Bevor wir zu Erklärung der Programmierung kommen, folgt ein Programmauszug anhand welchen es danach erklärt wird:

for(int i=0;i<10;i++)
{
      Code;
}

Wie bei einer if - Abfrage erfolgt zuerst der Befehl und danach die Bedingung in zwei runden Klammern.
Im Unterschied dazu, ist bei der for Schleife, for der Befehl und die Bedingung besteht aus drei Parametern, welche mit einem Strichpunkt getrennt sind.
Anschließend erfolgt der (mehrfach) auszuführende Code, in zwei geschwungene Klammern.

drei Parameter

Zum besseren Verstehen sehen wir uns den Ablauf dieser for Schleife in einer Tabelle an.

Schleifenvariable (i) Grenzwert (i<10) erreicht? Schrittweite (i++)
0 9 false 1
1 9 false 1
2 9 false 1
3 9 false 1
4 9 false 1
5 9 false 1
6 9 false 1
7 9 false 1
8 9 false 1
9 9 true 1


Übungsbeispiel

Nun haben wir behandelt wie eine for Schleife aufgebaut ist, um das Funktionsprinzip besser zu verinnerlichen, gilt es nun folgende Angabe zu Programmieren.

Angabe

Für die Lösung hier klicken. Bei Fragen und Problemen, bitte das Forum benutzen.

Lösung:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projekt1
{
      class Program
      {
            static void Main(string[] args)
            {
                  int zahl = Convert.ToInt32(Console.ReadLine());

                  for (int i = 0; i <=zahl; i++)
                  {
                        Console.WriteLine(i);
                  }
                  Console.ReadLine();
            }
      }
}

Die while Schleife

Dieser Typ ist wesentlich einfacher, birgt aber auch eine gewissen Gefahr in sich. Anders als bei der for Schleife wird nicht eine Variable hoch gezählt, sondern eine Bedingung wie bei einer if - Abfrage überprüft und der Programmcode so lang ausgeführt, bis die Bedingung nicht mehr erfüllt ist.
Die Gefahr besteht darin, dass wenn die Bedingung nie false ist, läuft die Schleife endlos, was zu einem gewaltsamen Beenden des Programms zwingt. (Beenden lässt sich dies durch das blaue Quadrat in der dritten Menüzeile von Visual C#)

Als Programmcode sieht dies folgendermaßen aus:

while(Bedingung)
{
      Code;
}

Hierbei kann auch die Bedingung sein, dass ein String einen gewissen Text hat oder auch eine Variable einen gewissen Wert erreicht.
Anders ausgedrückt, die Bedingung muss true sein, wie bei einer if - Abfrage.
Mit einer solchen while Schleife, lässt sich auch die Funktionsweise einer for Schleife nachbilden, allerdings ist es erforderlich, dass eine Variable von Hand hochgezählt wird z.B.: durch variable++.
Anschließend erfolgt der (mehrfach) auszuführende Programmcode, in zwei geschwungenen Klammern.

Bevor wir nun zu einem Übungsbeispiel kommen, lernen wir noch eine weitere Eigenschaft des + Zeichens kennen. Wir hatten bereits gehört, dass sich mit diesem zwei Zahlen addieren lassen, hatten damals jedoch nicht erwähnt, dass sich hiermit auch strings zusammenketten lassen.
Durch dieses + Zeichen lässt sich auch eine Zahl zu einem string hinzufügen, diese wird jedoch zuvor automatisch in einen string gewandelt und danach angehängt.

Als Programmcode würde dies zum Beispiel folgendermaßen funktionieren:

Console.WriteLine("Text"+Variable);

oder

Console.WriteLine("zusammengeketteter"+"Text");

Übungsbeispiel

Im letzten Teil hatten wir gehört wie eine while Schleife arbeitet und wie strings zusammengefügt werden, nun gilt es dies in einem Übungsbeispiel mit folgender Angabe in ein Programm umzusetzen. Angabe

Für die Lösung hier klicken. Bei Fragen und Problemen, bitte das Forum benutzen.

Lösung:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projekt1
{
      class Program
      {
            static void Main(string[] args)
            {
                  int zahl = Convert.ToInt32(Console.ReadLine());
                  int hochzaehlVariable = 0;

                  while(zahl>=hochzaehlVariable)
                  {
                        Console.WriteLine("Die aktuelle Zahl = " +hochzaehlVariable);
                        hochzaehlVariable++;
                  }
                  Console.WriteLine("Alle Durchläufe durchgeführt!");
                  Console.ReadLine();
            }
      }
}