DUD_E - 32
Halbprofi
(offline)
Dabei seit 07.2009
166
Beiträge
|
|
Geschrieben am: 10.12.2010 um 11:39 Uhr
|
|
Moin Moin ;)
also meine frage ist ... kann mir einer die For Schleife bei C# erklären?
War gestern und heute krank und genau gestern haben wir mir der for schleife angefangen.
aus dem aufschrieb von meinem kumpel werde ich auch nicht schlau...
also was wichtig für mich wär...
-Nutzen?
-Wann wird eine For Schleife benutzt?
-Aufbau
-Gutes Beispiel
danke schon mal im vorraus ;)
BvB 09 ♥ Mein Herz ist im Ruhrgebiet
|
|
Entenquark - 35
Anfänger
(offline)
Dabei seit 05.2009
3
Beiträge
|
Geschrieben am: 10.12.2010 um 11:52 Uhr
Zuletzt editiert am: 10.12.2010 um 11:53 Uhr
|
|
Die For-Schleife ist eine Zählschleife. Praktisch, wenn man weiß wie oft eine Schleife durchlaufen muss.
Die for-Anweisung gehört wie das while zur Gruppe der Schleifen mit Vorabtest.
Syntax:
Zitat:
for (Ausdruck1; Ausdruck2; Ausdruck3) Anweisung
Ausdruck 3: verändert den Laufindex
Ausdruck 2:Bedingung, die erfüllt sein muss, um Schleife fortzusetzen
Ausdruck 1: Schleifenindex-Initialierung
Bei Ausführung der for-Anweisung wird "Ausdruck2" vor jedem Schleifendurchlauf bewertet und auf Wahrheit getestet. "Ausdruck3" wird hingegen am Ende jedes Durchlaufs bewertet. Diese Reihenfolge kann durch vor- oder nachgestellte Inkrementoperatoren (i++, ++i) nicht beeinflusst werden. Die Schleife wird solange durchlaufen, wie "Ausdruck2" wahr ist.
Bsp: ( Konsolenanwendung)
{ gibt alle Zahlen von 1 - 10 in der Konsole aus }
Zitat:
for (int i = 1; i < 10; i++)
{
Console.WriteLine(i);
}
|
|
DUD_E - 32
Halbprofi
(offline)
Dabei seit 07.2009
166
Beiträge
|
|
Geschrieben am: 10.12.2010 um 12:02 Uhr
|
|
Ah das macht einiges klar ;)
Dankeschön hast mir sehr geholfen :)
BvB 09 ♥ Mein Herz ist im Ruhrgebiet
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
|
Geschrieben am: 10.12.2010 um 12:31 Uhr
|
|
vielleicht wäre noch anzumerken, dass du die bedingung in ausdruck 2 keineswegs statisch vor der compilierung angeben musst. Ein Ausdruck wie i < teststring.Length; ist hier druchaus möglich.
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|
scw - 42
Experte
(offline)
Dabei seit 09.2002
1836
Beiträge
|
|
Geschrieben am: 10.12.2010 um 12:38 Uhr
|
|
Zitat von Klischeepunk: vielleicht wäre noch anzumerken, dass du die bedingung in ausdruck 2 keineswegs statisch vor der compilierung angeben musst. Ein Ausdruck wie i < teststring.Length; ist hier druchaus möglich.
In den meisten Fällen sogar üblich. Da einfach "irgendeine" Zahl rein schreiben ist normal nicht schön. Sowas nennt man auch magic number. Hab da schon sehr abenteuerliche Sources gesehen.
Wenn man so eine magic number verwendet, sollte man aber wenigstens in einem Kommentar dokumentieren, wieso die Zahl.
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
|
Geschrieben am: 10.12.2010 um 12:55 Uhr
|
|
Zitat von scw: Zitat von Klischeepunk: vielleicht wäre noch anzumerken, dass du die bedingung in ausdruck 2 keineswegs statisch vor der compilierung angeben musst. Ein Ausdruck wie i < teststring.Length; ist hier druchaus möglich.
In den meisten Fällen sogar üblich. Da einfach "irgendeine" Zahl rein schreiben ist normal nicht schön. Sowas nennt man auch magic number. Hab da schon sehr abenteuerliche Sources gesehen.
Wenn man so eine magic number verwendet, sollte man aber wenigstens in einem Kommentar dokumentieren, wieso die Zahl.
Auch dabei gilt natürlich vorsicht. Vor nicht allzulanger zeit gefunden:
CString strFeld[10];
{....}
do {
fuelle_feld_aus_recordset(rs, strFeld);
} while (!rs.IsEOF());
Darüber freue ich mich heut noch :)
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|
Mizar - 39
Anfänger
(offline)
Dabei seit 08.2009
3
Beiträge
|
|
Geschrieben am: 10.12.2010 um 17:55 Uhr
|
|
Zitat: Bsp: ( Konsolenanwendung)
{ gibt alle Zahlen von 1 - 10 in der Konsole aus }
Zitat:
for (int i = 1; i < 10; i++)
{
Console.WriteLine(i);
}
stimmt nicht ganz.
Hier werden alle ganzen Zahlen von 1-9 ausgegeben
Um alle Zahlen von 1-10 zu erhalten muss das < durch ein <= ersetzt werden.
Hört sich jetzt vieleicht spießig an, aber es ist wichtig zu wissen von wo bis wo Schleifen laufen.
Grüße
|
|
gstueb - 56
Halbprofi
(offline)
Dabei seit 03.2006
254
Beiträge
|
|
Geschrieben am: 11.12.2010 um 03:25 Uhr
|
|
Zitat von Klischeepunk:
Auch dabei gilt natürlich vorsicht. Vor nicht allzulanger zeit gefunden:
CString strFeld[10];
{....}
do {
fuelle_feld_aus_recordset(rs, strFeld);
} while (!rs.IsEOF());
Darüber freue ich mich heut noch :)
Ich kapier den Gag gerade nicht, könnte aber auch daran liegen, dass ich nicht in C programmiere.
god is real – unless declared integer!
|
|
Klischeepunk - 41
Champion
(offline)
Dabei seit 01.2005
8907
Beiträge
|
Geschrieben am: 11.12.2010 um 16:29 Uhr
Zuletzt editiert am: 11.12.2010 um 16:30 Uhr
|
|
Zitat von gstueb: Zitat von Klischeepunk:
Auch dabei gilt natürlich vorsicht. Vor nicht allzulanger zeit gefunden:
CString strFeld[10];
{....}
do {
fuelle_feld_aus_recordset(rs, strFeld);
} while (!rs.IsEOF());
Darüber freue ich mich heut noch :)
Ich kapier den Gag gerade nicht, könnte aber auch daran liegen, dass ich nicht in C programmiere.
Ist eh Pseudocode - Feldgrenzen werden nicht beachtet ;) das funktioniert solange das Recordset <= 10 ist, ansonsten gibts n wunderbaren überlauf :)
Und hier konnten durchaus mal werte von 20, 30, 40 elementen im rs erreicht werden. :)
( CString strFeld[10] Array von 10 Variablen des Typs CString)
Dieser Post wurde 2 mal ROT-13 verschlüsselt.
|
|