Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Margarethe Salzmann Geändert vor über 4 Jahren
1
Schleifen Datenfelder (Arrays) Verzweigungen
Vektoren, Matrizen, Tabellen for, while, foreach, if-else und switch-case Dr. Beatrice Amrhein
2
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Überblick Schleifen for, while, foreach Eindimensionale Arrays Deklaration, Initialisierung, Zugriff Mehrdimensionale Arrays Verzweigungen if, else, switch, case Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
3
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Schleifen Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
4
Schleifensteuerungen: while
Kopfgesteuerte Schleife mit while Verlangt als Abbruch-Bedingung einen booleschen Ausdruck Die Abbruch-Bedingung wird jeweils vor jedem Schleifendurchgang geprüft. while (Test) // Abbruch-Bedingung { Anweisungen, die durchzuführen sind, solange der Test zu true evaluiert. } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
5
Schleifensteuerungen: while
int n = 1; while (n < 4) // Abbruch-Bedingung { Console.WriteLine("Der Wert von n ist {0}", n); n++; } Erzeugt die Ausgabe Der Wert von n ist 1 Der Wert von n ist 2 Der Wert von n ist 3 Vor jedem Schleifendurchgang wird geprüft, ob der Test (n < 4) noch erfüllt ist. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
6
Schleifensteuerungen: do while
Fussgesteurte Schleife mit do while Verlangt als Abbruch-Bedingung einen booleschen Ausdruck do { Anweisungen, die auszuführen sind, solange der Test zu true evaluiert. } while (Test); // Abbruch-Bedingung Im Gegensatz zur while-Anweisung wird der Inhalt der do-while-Schleife einmal ausgeführt, bevor die Abbruch-Bedingung das erste Mal geprüft wird. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
7
Schleifensteuerungen: do while Beispiel
int n = 0; do { Console.WriteLine("n={0}", n); n++; } while (n < 4); // Abbruch-Bedingung Erzeugt die Ausgabe Der Abbruch-Test (n < 4) wird jeweils am Ende der Schleife geprüft. Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
8
Schleifensteuerungen: for
Kopfgesteuerte Schleife mit for Die Schleifenvariable kann auch von aussen bezogen werden for (Initialisierung; Test; Laufvariable anpassen) { Anweisungen, die auszuführen sind, solange der Test zu true evaluiert. } Die Initialisierung geschieht nur einmal am Anfang. Der Test wird vor jedem Schleifendurchgang durchgeführt. Die Anpassung der Laufvariablen wird erst am Ende, bzw. nach dem Schleifeninhalt durchgeführt. 1 2 4 3 1 2 4
9
Schleifensteuerungen: for
Beispiel int i; int j = 3; for (i = 4; i <= 15; i += j) { Console.WriteLine("i={0}", i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
10
Schleifensteuerungen: for rückwärts
Die Schleife kann auch rückwärts laufen for (int i = 7; i > 3; i--) { Console.WriteLine("i={0}", i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
11
Verschachtelte for-Schleife
Schleifen können ineinander verschachtelt werden for (int i = 1; i <= 2; i++) { for (int j = 1; j <= 4; j++) Console.WriteLine("i={0}, j={1}", i, j); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
12
Schleifensteuerungen: foreach
Kopfgesteuerte Schleife mit foreach Ist nur auf Array-Typen anwendbar Hat keine Schleifenvariable Erlaubt während des Durchlaufs keine Veränderung des Arrays int[] fibarray = new int[] { 1, 1, 2, 3, 5, 8 }; foreach (int i in fibarray) { Console.WriteLine("i={0}",i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
13
Sprunganweisungen: break
Mit der break-Anweisung wird die direkt umschliessende Schleife beendet. Sie beendet auch eine switch-Anweisung (vgl. swich-Anweisungen). //Die break-Anweisung beendet diese Schleife sobald i den Wert 5 erreicht. for (int i = 1; i <= 100; i++) { if (i == 5) break; Console.WriteLine("i={0}", i); } Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
14
Sprunganweisungen: continue
continue übergibt den Verlauf an die nächste Iterations-Anweisung //Die continue-Anweisung springt in die nächste Iteration for (int i = 1; i <= 10; i++) { if (i%2 == 0) continue; } Console.WriteLine("i={0}", i); Erzeugt die Ausgabe Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
15
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Eindimensionale Arrays Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
16
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Deklaration Deklaration unbestimmte Länge (keine Speicher-Allokation auf dem Heap) int[] intArray; long[] longArray; char[] charArray; string[] stringArray; Deklaration mit Längen-Angabe (mit Speicher-Allokation auf dem Heap) // Ganzahl-Array der Länge 3 int[] intArray = new int[3]; // Character-Array der Länge 4 char[] charArray = new char[4]; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
17
Deklaration und Initialisierung
durch Längen-Angabe, durch literale Initialisierung oder beides // Leerer Ganzahl-Array der Länge 3 intArray = new int[3]; // Long Array der Länge 2, literal longArray = new long[] { , }; // Char Array der Länge 4, literal und Längen-Angabe charArray = new char[4] { 'a', 'b', 'c', 'd' }; // Leerer String-Array der Länge 3 stringArray = new string[3]; Speicherabbild für String Array Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
18
Deklaration und Initialisierung
Kombination von Deklaration und Initialisierung // String-Array der Länge 2, string[] stringArray = {"John", "Doe"}; // char-Array der Länge 4 char[] charArray = { 'a', 'b', 'c', 'd' }; // Ganzzahl-Array der Länge 3 int[] intArray = { 17, 35, 22 }; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
19
Zugriff auf die Werte (Lesen und Schreiben)
Der Zugriff auf die Werte erfolgt über die Angabe der Nummer des Feldes in eckigen Klammern (z.B: charArray[1]) //Initialisierung string[] stringArray = {"John", "Doe"}; char[] charArray = { 'a', 'b', 'c', 'd' }; //Ausgabe Console.WriteLine("Vorname: {0} Nachname:{1}", stringArray[0], stringArray[1]); Console.WriteLine("--{0}--{1}--{2}--{3}--", charArray[0], charArray[1], charArray[2], charArray[3]); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
20
Durchlauf durch alle Werte
Mit der foreach-Anweisung werden alle Werte des Arrays durchlaufen //Initialisierung char[] charArray = { 'a', 'b', 'c', 'd' }; //Ausgabe foreach (char p in charArray) { Console.Write("--{0}", p); } Console.WriteLine("--"); Mit der foreach-Anweisung können die Werte eines Arrays nicht verändert werden! Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
21
Default Werte für nummerische Arrays
Nummerische Arrays werden mit dem Wert 0 initialisiert. int[] intMatrix = new int[3]; long[] longMatrix = new long[3]; float[] floatMatrix = new float[3]; double[] doubleMatrix = new double[3]; for (int i = 0; i < 3; i++) { Console.WriteLine("intMatrix[{0}]={1}, longMatrix[{0}]={2}, " + "floatMatrix[{0}]={3}, doubleMatrix[{0}]={4} ", i, intMatrix[i], longMatrix[i], floatMatrix[i], doubleMatrix[i]); } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
22
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Mehrdimensionale Arrays Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
23
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Deklaration Deklaration einer Ganzzahl Matrix mit 3 x 6 Werten int[,] intMatrix = new int[3, 6]; Deklaration einer Byte Matrix mit Initialisierung byte[,] byteMatrix = new byte[,] { {2,3,4,5}, {6,7,8,9} }; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
24
Initialisierung: Füllen der Matrix mit Werten
Füllen (und Ausgeben) einer Matrix int[,] intMatrix = new int[15,9]; for (int i = 0; i < 15; i++) { for (int j = 0; j < 9; j++) intMatrix[i, j] = i+j; Console.Write("{0,4}", intMatrix[i,j]); } Console.WriteLine(); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
25
Initialisierung: Füllen der Matrix mit Werten
Füllen (und Ausgeben) einer double Matrix double[,] intMatrix = new double[15,9]; for (int i = 0; i < 15; i++) { for (int j = 0; j < 9; j++) intMatrix[i, j] = Math.Sqrt(i*j); Console.Write("{0,6:F2}", intMatrix[i, j]); } Console.WriteLine(); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
26
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Die Methode GetLength GetLength(0) gibt die Länge in der ersten, GetLength(1) die Länge in der zweiten Dimension zurück. for (int i = 0; i < intMatrix.GetLength(0); i++) { for (int j = 0; j < intMatrix.GetLength(1); j++) intMatrix[i, j] = i+j; Console.Write("{0,4}", intMatrix[i,j]); } Console.WriteLine(); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
27
Durchlauf durch alle Werte
Die foreach-Anweisung kann auch alle Werte eines mehrdimensionalen Arrays durchlaufen //Initialisierung int[,] intMatrix = { { 1, 2, 3 }, { 4, 5, 6 } }; //Ausgabe foreach (int i in intMatrix) { Console.Write("{0} ", i); } Die Ausgabe erscheint «eindimensional». Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
28
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Verzweigungen Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
29
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Verzweigungen: if Einfache Verzweigungen mit if Verlangt in der Klammer immer einen booleschen Ausdruck (Test) if( Test ){ // Block mit den auszuführenden Anweisungen, falls der Test zu true evaluiert Anweisungen im Fall von true … } else { // Block mit den Anweisungen, falls der Test zu false evaluiert Anweisungen im Fall von false } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
30
Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
Verzweigungen: if Beispiel Console.Write("Geben Sie Ihren Namen ein: "); string name = Console.ReadLine(); // Test if( name == "" ){ // Test evaluiert zu true Console.WriteLine("Haben Sie keinen Namen?"); } else { // Test evaluiert zu false Console.WriteLine("Hallo {0}!", name); } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
31
Verzweigungen: if mit mehreren Tests
Beispiel // erster Test if( name == null ){ // erster Test evaluiert zu true Console.WriteLine("erster Test ist true"); } // zweiter Test else if (name.Length == 0){ // zweiter Test evaluiert zu true Console.WriteLine("zweiter Test ist true?"); } else { // zweiter Test evaluiert zu false Console.WriteLine("Hallo {0}!", name); Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
32
Verzweigungen: switch
Mehrfache Verzweigungen mit switch Die Test-Fälle sind konstant „default“ sollte am Ende sein (muss aber nicht) switch (intValue) { case 1: Anweisungen für Fall 1 break; case 2: Anweisungen für Fall 2 default: Anweisungen für alle anderen Fälle } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
33
Verzweigungen: switch
int caseSwitch = 1; switch (caseSwitch) { case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); default: Console.WriteLine("Default case"); } Erzeugt die Ausgabe Case 1 Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
34
Verzweigungen: switch
int caseSwitch = 3; switch (caseSwitch) { // mehrere Fälle case 0: case 1: Console.WriteLine("Case 0 or 1"); break; case 2: Console.WriteLine("Case 2"); break; // Diese Zeile verursacht eine Warnung Console.WriteLine("Unreachable code"); // evaluiert zu 3 case (7 – 4): Console.WriteLine("Case 3"); break; // Falls caseSwitch ungleich 0, 1, 2, oder 3 wird // der default Pfad ausgeführt. default: Console.WriteLine("Default case (optional)"); break; } Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012
35
Verzweigungen: switch/case
Statt einer Zahl (int) kann auch ein Buchstabe (char) für die Verzweigung verwendet werden: switch (charValue) { case 'A': Anweisungen für Fall 'A' break; case 'B': Anweisungen für Fall 'B' case 'V': Anweisungen für Fall 'V' default: Anweisungen für alle anderen Fälle }
36
Entscheidungen mit Hilfe von Aufzählungen
Eine Aufzählung kann in einem switch-case Statement für die Auswahl verwendet werden: public enum Note { A, B, C, D, E, FX, F } public static String getLeistung(Note ects) { String resultat; switch (ects) case Note.A: restultat = "Hervorragend"; break; case Note.B: restultat = "Sehr gut"; break; case Note.C: restultat = "Gut"; break; case Note.D: restultat = "Passabel"; break; case Note.E: restultat = "Passabel"; break; case Note.F: restultat = "Ungenügend"; break; } return resultat;
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.