Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Schleifenbefehle in C#

Geschrieben von: Christoph Wille
Kategorie: C#

Im heutigen Artikel befassen wir uns mit den Schleifenbefehlen von C#: for, while und do. Wie im letzten Artikel Kontrollstatements in C# werde ich die Unterschiede zu VBScript herausarbeiten.

Voraussetzung um den Sourcecode dieses Artikels verwenden zu können ist eine Installation des Microsoft .NET Framework SDK's auf einem Webserver. Weiters setze ich voraus, daß der Leser bereits eine Programmiersprache beherrscht - deshalb ist die Information auch in sehr komprimierter Form gehalten.

Das for Statement

Unter VBScript ist das For Statement sehr einfach gestrickt:

For Laufvariable=Startwert To Endwert
...
Next

Man hat eine Laufvariable (die auf Startwert initialisiert wird), eine Endbedingung (<=Endwert) und die Statements, die in der Schleife ausgeführt werden sollen. Im Bestfall kann man noch mit Step die Erhöhung der Laufvariable beeinflussen.

Da C# von C++ so einiges geerbt hat, sieht die for Schleife auch sehr C++ like aus (kurz, prägnant):

for (Laufvariable=Startwert; Endbedingung; Erhöhung Laufvariable)
{
}

Um das Ganze gleich mit Leben zu erfüllen, habe ich das berühmte Hello World Beispiel ein bischen umgebaut:

<% @Page Language="C#" %>
<%
for (int i=1;i<=5;i++)
{
%>
<font size="<%=i%>">Hello World!</font><br>
<%
}
%>

Was passiert in diesem Code? In der for Schleife darf man Variablen deklarieren (die Variable i), und ich habe davon natürlich Gebrauch gemacht. Der Startwert wird zugewiesen, die Endbedingung definiert (Schleife ausführen, solange i kleiner oder gleich 5 ist). Und nach jedem Durchlauf wird i um eins erhöht:

i++;

Das ist äquivalent zu

i=i+1;

Der Operator ++ heißt Inkrementoperator, und erhöht Variablen um 1. Natürlich gibt es auch den Dekrementoperator (--). Diese, als auch andere "verkürzte" Operatoren sind aus C++ vererbt worden.

Der Output des for Loops sieht wie folgt aus:

Man kann zwar noch einiges mehr mit dem for Loop anstellen, aber das was ich hier vorgestellt habe, reicht um die meisten Anwendungen programmieren zu können. Wer mehr wissen möchte, den darf ich an mein Buch, Presenting C#, verweisen (Link am Ende des Artikels).

Das while Statement

Ebenfalls ein alter Bekannter von VBScript ist das While Statement:

While (Boolscher Ausdruck)
...
Wend

In C# sieht das Ganze nicht wirklich viel anders aus:

while (Boolscher Ausdruck)
{
}

Auf unser kleines Hello World Beispiel angewendet, könnte der Sourcecode mit der while Schleife wie folgt aussehen:

<% @Page Language="C#" %>
<%
int nHellos = 0;
while (5 > nHellos++)
{
  Response.Write("<font size=\"");
  Response.Write(nHellos.ToString());
  Response.Write("\">Hello World!</font><br>");
}
%>

Der Output ist der Gleiche wie für den for Loop, allerdings habe ich diesmal nicht HTML mit ASP.NET Code gemischt, sondern alles über C# ausgeben lassen. In diesem Beispiel wird deutlich, daß man mit Datentypen nicht "herumwurschteln" kann: Response.Write nimmt nur eine String Variable, und basta. Man muß also vorher konvertieren. Ebenso geändert im Vergleich zu VBScript ist wie man ein Hochkomma in einen String einbaut: nicht durch ein doppeltes Hochkomma "", sondern durch \".

Das do Statement

Nun zum letzten Schleifenstatement, das ich in diesem Artikel behandeln möchte: das Do Statement. In VBScript gibt es 2 Varianten:

Do
...
Loop While(Boolscher Ausdruck)

Do
...
Loop Until(Boolscher Ausdruck)

Die Do Schleife läuft entweder solange ein Ausdruck True ist (While), oder bis ein Ausdruck zu True wird (Until). Beiden gemeinsam ist allerdings, daß die Statements in der Schleife minimal einmal ausgeführt werden.

In C# im Gegensatz dazu gibt es nur eine do Variante:

do
{
}
while (Boolscher Ausdruck);

Wieder auf unser Beispiel angewendet, könnte eine Lösung so aussehen:

<% @Page Language="C#" %>
<%
bool bExitDoLoop = false;
int nHellos = 0;
string strTempString;

do
{
  nHellos++;
  strTempString = "<font size=\"" + nHellos.ToString() + 
          [line continued]"\">Hello World!</font><br>";
  Response.Write(strTempString);
  if (5 == nHellos) bExitDoLoop = true;
}
while (! bExitDoLoop);
%>

Zugegebenermaßen hätte ich die Laufbedingung auch auf nHellos <= 5 setzen können, anstatt mit einer boolschen Variable und einer if Abfrage herumzuspielen - aber ich wollte noch den Negierungsoperator Rufzeichen (!) demonstrieren. Dieser ist das Äquivalent zu VBScript's Not Keyword.

Schlußbemerkung

In diesem Artikel habe ich drei Schleifenstatements vorgestellt - for, while und do. Diese sind "alte" Bekannte für Schleifenoperationen - aber C# hat noch eine weitere Anweisung zu bieten: foreach. Diese wird zum Iterieren über Collections eingesetzt, und ist Thema eines weiteren Artikels.

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

A Brief History of C#
Das foreach Statement
Dateiupload mit ASP.NET
Datenaufbereitung in ADO.NET
Deutsche Personalausweisnummern verifizieren
Ein Touch-Utility in C#
Enums lesbar machen
Kontrollstatements in C#
Sortieren mit dem IComparer Interface

Links zu anderen Sites

Die aspDEdotnet Diskussionsliste
Presenting C#

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Eine weitere sehr hilfreiche Resource ist das deutsche ASP.NET Wiki, das als zentrale Anlaufstelle für Tips, Tricks, Know How und alles Nützliche was man in seinem Alltag als (ASP).NET-Entwickler so braucht und entdeckt gedacht ist.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.