[HELP] C# Schleifen
eeK! 04.12.2007 - 19:46 5101 38
eeK!
ieS Virtual Gaming
|
Abend, also ich hab morgen einen Test in Angewandte Informatik über Schleifen. Leider habe ich absolut keinen Plan wie ich den Syntax schreiben soll. Struktogramm zu zeichnen ist nicht so das Problem nur dieses dann in einen Syntax umwandeln.. Absolut keinen Plan. War heute sogar Förderunterricht aber hat nicht wirklich was gebracht. Jetzt wollte ich fragen ob´s mir vl. hier jemand erklären kann - vl. verstehe ich es ja wenn´s von g33k zu g33k ist.. Suche im Internet jetzt noch paar Sachen - habe auch schon die ein oder andere nette Site gefunden und werd mich jetzt halt noch mal in die Materie einlesen. Wir behandeln zurzeit die : FOR,- WHILE,- DO-WHILE Schleife. Naja wäre echt leiwand wenn´s vl wer so "erklären" kann das es auch ich verstehe mfg
|
stevke
in the bin
|
FOR-Schleife Bsp: for (int i = 0; i < 100; i++)
{
//code
}
Erklärung: Diese Schleife führt die Befehle innerhalb der Klammern so oft durch bis die Bedingung "false" ist. Im ersten Abschnitt definierst du deine Zählvariable, im 2. die Bedingung, wann die Schleife zu Ende sein soll, im 3. veränderst du die Zählvariable (je nach dem was du benötigst kann hier auch ganz was anderes stehen) Wenn der Inhalt der Schleife einmal durchgeführt wurde, wird die Bedingung wieder abgefragt und es geht weiter. Ganz gut kannst du dir das ansehen, wenn du zB mit C# Express Edition eine For-Schleife programmierst und dieses dann Schritt für Schritt durchgehst (mit F10 im Visual Studio). Do-Schleife: do
{
}while(BEDINGUNG);
Bei dieser Schleife kommst du garantiert einmal in den Bereich zwischen den Klammern, am Ende wird die Bedingung überprüft (zB while(true) für eine Endlosschleife), wenn sie zutrifft (also "true" ist) wird der Code zwischen den Klammern nochmal ausgeführt. While-Schleife: while(Bedingung)
{
}
Hier wird gleich vor dem ersten Durchlauf die Bedingung abgefragt, ansonst ähnlich der Do-While-Schleife. Falls irgendwas spezielles unklar ist, stell einfach eine konkrete Frage.
|
Burschi1620
24/7 Santa Claus
|
|
fresserettich
Here to stay
|
ich probiers mal 1. while-schleife in der Klammer schreibst du einfach deine Bedingung rein solange diese true ist, wird die schleife ausgeführt while (myBoolean == true)
{
//Code innerhalb der Schleife
}
2. for-schleife Die Forschleife eignet sich besonders zum durchlaufen z.B. von Arrays, in meinem Beispiel definierst du dir einfach eine Variable und weist dieser gleich einen wert zu, dann schreibst du nach dem Strichpunkt die Bedingung und nach dem 2ten Strich punkt, was mit der Variable geschehen soll z.B. um 1 erhöhen ( sprich i++) for(int i = 0; i < 5; i++)
{
//Code innerhalb der Schleife
}
die Schleife wird einmal fix durchlaufen, dann wir genau wie bei der while die schleife nur noch durchlaufen, wenn die Bedinung in der Klammer erfüllt ist do
{
//Code innerhalb der Schleife
}while ( myBoolean == true)
hth Hier noch 2 Links http://www.guidetocsharp.de/guide/guide6.htmlhttp://www.google.at/search?hl=de&a...Suche&meta=
|
.dcp
notamodbuthot
|
eigentlich reicht das msdn für sowas vollkommen. am besten installierst dus dir lokal, dann nervts auch nich immer so mitm nachladen.
wenn du weitere fragen hast, kannste mich gerne im icq adden.
|
stevke
in the bin
|
Wenn du VS2005 hast kannst du auch einfach mal folgendes probieren: "for" eingeben, 2x Tab drücken, dann hast die For-Schleife und du siehst wie die einzelnen Parameter zusammenhängen.
|
eeK!
ieS Virtual Gaming
|
Hab SharpeDevelop - schon mal fettes danke @ all hat ma scho um einges weitergeholfen!
|
Hansmaulwurf
u wot m8?
|
Mag jetzt nicht I-Tüpfel reiten, aber in der Informatik ist das ja Gang und gebe. So ist das doch nicht ausführbar, weil ein Semikolon am Ende fehlt. oder?
|
mik
einfach anders!
|
Ich hoff mal es is in C# genauso wie in C, sonst bitte mich ausbessern. Wollt noch sagen das du mit einer for-schleife natürlich problemlos eine while schleife ersetzen kannst! zum Beispiel while(var == 1)
{
// Code
}
in for(;var == 1;)
{
//Code
}
ausserdem kannst du mehrere parameter bei der for schleife angeben, mit beistrich getrennt! z.B. for(i=0,j=0;var == 1;k=i+j,i++)
{
//Code
}
usw usw.. EDIT: achja! wenn wir grade bei schleifen sind, sind die Befehle "break;" und "continue;" interessant! mit break kannst du sofort aus einer schleife raus, also diese sofort abbrechen, das heißt er macht sofort NACH der schleife weiter mit continue kannst du ihm sagen er soll genau an der stelle wo du es ausführst wieder zurück nach oben gehen und die bedingung erneut prüfen, das darunterstehende, was er sonst ausführen würde wird dann nicht ausgeführt Beispiel: for(i=0;i <100;i++)
{
//Code
break;
//Code der nicht ausgeführt wird
}
//Hier gehts weiter
continue fällt mir grad kein gutes beispiel ein
Bearbeitet von mik am 04.12.2007, 20:36
|
Hansmaulwurf
u wot m8?
|
Nur mit Break und Continue aufpassen, da du sich nicht einem Funktionsnamen zuweißt und es so zu verwechslungen kommen kann..
|
murcielago
Dr. Doom
|
Nur mit Break und Continue aufpassen, da du sich nicht einem Funktionsnamen zuweißt und es so zu verwechslungen kommen kann.. das wird generell schwer gehn
|
eeK!
ieS Virtual Gaming
|
wow... hab grad ein geiles programm programmiert ghabt das einfach nur von 1-unendlich gezählt hat... ich check jetzt zwar um was geht und so.. aber wie ich den syntax zam bringe ist mir nach wie vor ein rätsel
Bearbeitet von eeK! am 04.12.2007, 21:12
|
.dcp
notamodbuthot
|
wow... hab grad ein geiles programm programmiert ghabt das einfach nur von 1-unendlich gezählt hat... HAT? wo hast du den quantencomputer her? ich check jetzt zwar um was geht und so.. aber wie ich den syntax zam bringe ist mir nach wie vor ein rätsel wie meinst du das? was genau verstehst du nicht? btw: die syntax
|
mik
einfach anders!
|
for( <initialisierung bevor die schleife ausgeführt wird> ; <bedingung die true ergeben muss damit die schleife weiterläuft, bei false wird die schleife beendet> ; <befehle die bei jedem durchlauf ausgeführt werden> )
while( <bedingung die true ergeben muss damit die schleife weiterläuft, bei false wird die schleife beendet> )
Bearbeitet von mik am 04.12.2007, 21:33
|
eeK!
ieS Virtual Gaming
|
Das habe ich jetzt irgendwie geschrieben mit Hilfe von einem Schulbeispiel... aber es funzt eh net.. int i; int x; for(i=3;i<7;i++) { } do { Console.WriteLine("x="); x=Convert.ToInte32(Console.Readline()); } while(x>5); Reason: 'System.Console' enthält keine Definition für 'Readline'(CSO117)
|