Visual Basic 2015 Ricardo Hernández Garcia Grundlagen Programmierung 1. Ausgabe, Dezember 2015 VBNET2015 ISBN 978-3-86249-517-7 7 Visual Basic 2015 – Grundlagen Programmierung 7 Kontrollstrukturen In diesem Kapitel erfahren Sie D wie Sie die Ausführung von Anweisungen von Bedingungen abhängig machen D wie Sie mit Verzweigungen mehrere Fälle unterscheiden D wie Sie Anweisungen über Schleifen mehrfach ausführen können Voraussetzungen D Vergleichsoperatoren und logische Operatoren 7.1 Kontrollstrukturen einsetzen Kontrollstrukturen im Überblick Die Programme, die Sie bisher kennengelernt haben, bestanden aus einer Folge von Anweisungen, die genau einmal sequenziell (der Reihe nach) abgearbeitet wurden. Oft ist es jedoch erforderlich, dass Programmteile mehrmals oder gar nicht ausgeführt werden. Die Visual-Basic-Sprachelemente, mit denen der Programmablauf gesteuert werden kann, werden Kontrollstrukturen genannt. Die Entscheidung, nach welchen Kriterien der Ablauf gesteuert wird, wird in Bedingungen formuliert. Es werden zwei Gruppen von Kontrollstrukturen unterschieden: D Verzweigungen: Es werden alternative Programmteile angeboten, in die – abhängig von einer Bedingung – beim Programmablauf verzweigt wird. D Schleifen (engl. loops): Ein Programmteil kann – abhängig von einer Bedingung – mehrmals durchlaufen werden. Verzweigungen Zwei Grundformen der Verzweigungen sind in Visual Basic enthalten: D Bedingte Auswahl: Je nachdem, ob eine Bedingung erfüllt ist oder nicht, wird ein Programmteil ausgeführt oder übersprungen bzw. ein alternativer Programmteil ausgeführt. D Fallauswahl: Es wird ein Ausdruck ausgewertet. Je nachdem, welchem Wert der Ausdruck entspricht, verzweigt das Programm fallweise (case) in einen entsprechenden Programmteil. Eine Fallauswahl wird auch mehrseitige Auswahl genannt, da sie mehrere Alternativen bereitstellen kann. Schleifen (Wiederholungen) Über eine Schleife, auch Wiederholung oder Iteration genannt, können Anweisungen und Anweisungsblöcke mehrfach ausgeführt werden. Zwei Grundformen von Schleifen-Strukturen sind in Visual Basic enthalten: 64 © HERDT-Verlag 7 Kontrollstrukturen D Bedingte Wiederholung: Die Wiederholung des in der Schleife eingeschlossenen Programmteils ist an eine Bedingung geknüpft. Hierbei wird wiederum unterschieden, ob die Bedingung vor oder nach der Ausführung des eingeschlossenen Programmteils erfolgt: Bei der kopfgesteuerten Wiederholung erfolgt die Überprüfung der Bedingung vor der Ausführung des eingeschlossenen Programmteils. Solange eine Bedingung erfüllt ist bzw. bis eine Bedingung erfüllt ist, wird der in der Struktur eingeschlossene Programmteil ausgeführt. Anschließend wird das Programm hinter der Schleifenstruktur fortgesetzt. Bei der fußgesteuerten Wiederholung wird zunächst der eingeschlossene Programmteil ausgeführt. Anschließend wird die Bedingung geprüft. Ist die Bedingung erfüllt bzw. noch nicht erfüllt, wird der Programmteil erneut ausgeführt. Anderenfalls wird das Programm hinter der Schleifenstruktur fortgesetzt. D Zählergesteuerte Wiederholung: Ein Zähler bestimmt die Anzahl der Wiederholungen. Die Überprüfung, ob der Zähler den gewünschten Endwert erreicht hat, erfolgt vor der Ausführung des eingeschlossenen Programmteils. Übersicht über die Kontrollstrukturen in Visual Basic Kontrollstrukturen Verzweigungen Bedingte Auswahl Einseitige Auswahl Schleifen Mehrseitige (Fall-) Auswahl Zweiseitige Auswahl Bedingte Wiederholung Kopfgesteuerte Wiederholung Zählergesteuerte Wiederholung Fußgesteuerte Wiederholung Mehrstufige Auswahl 7.2 Einseitige Auswahl Bei vielen Problemstellungen ist die Verarbeitung von Anweisungen von Bedingungen abhängig. Nur wenn die Bedingung erfüllt ist, wird die betreffende Anweisung (bzw. der Anweisungsblock) ausgeführt. Anderenfalls wird die Anweisung übersprungen. Für die Steuerung eines solchen Programmablaufs stellt Visual Basic die einseitige Auswahl (If-Anweisung) zur Verfügung. Beispiel für die Verwendung einer einseitigen Auswahl D Wenn (If) ein Kunde einen Auftrag über 1000,- EUR erteilt, dann (Then) erhält er 4 % Rabatt. Bei Aufträgen bis 1000,- EUR wird kein Rabatt gewährt, d. h., die Berechnung des Rabatts wird nicht ausgeführt. D Die Überprüfung der Bedingung kann nur die beiden Ergebnisse "ja" oder "nein" ergeben, in Visual Basic entsprechend True (wahr) oder False (falsch). © HERDT-Verlag Auftrag>1000 ? nein ja Rabatt in Höhe von 4 % berechnen 65 7 Visual Basic 2015 – Grundlagen Programmierung Syntax der einseitigen Auswahl (If-Anweisung) D Die einseitige Auswahl beginnt mit dem Schlüsselwort If. D Dahinter wird eine Bedingung (Condition) formuliert. Die Bedingung ist ein Ausdruck (Expression) und liefert als Ergebnis einen Wert vom Typ Boolean zurück. If Condition Then Statement End If D Nach der Bedingung folgt das Schlüsselwort Then. D Anschließend folgt die Anweisung , die ausgeführt wird, wenn die Auswertung der Bedingung den Wert True ergibt. Liefert die Bedingung den Wert False, wird diese Anweisung übersprungen. Die Anweisung kann aus einer einzelnen Anweisung oder einem Anweisungsblock bestehen. D Das Ende der einseitigen Auswahl wird durch End If gekennzeichnet. Sehr kurze If-Anweisungen können in eine einzige Zeile geschrieben werden. In diesem Fall entfällt End If. If Condition Then Statement Beispiel: Discount.sln Für einen Rechnungsbetrag (InvoiceAmount) soll abhängig von seiner Höhe ein Rabatt berechnet werden. Anhand des Wertes der Variablen InvoiceAmount wird entschieden, ob ein Rabatt gewährt wird. Dieser wird gegebenenfalls berechnet und vom Rechnungsbetrag subtrahiert. Der neue Rechnungsbetrag wird (abzüglich des Rabatts) ausgegeben. Währungsangaben werden hier nicht berücksichtigt. Module MdlDiscount Sub Main() Dim InvoiceAmount As Double = 0.0 ' Rechnungsbetrag Dim Txt As String Console.Write ("Bitte geben Sie den Rechnungsbetrag ein: ") Txt = Console.ReadLine() InvoiceAmount = CDbl(Txt) If InvoiceAmount > 1000 Then invoiceAmount -= InvoiceAmount * 0.04 Console.WriteLine("Es wird ein Rabatt gewaehrt.") End If Console.WriteLine("Gesamtbetrag: " & InvoiceAmount) Console.ReadKey() End Sub End Module Die eingegebene Zeichenkette wird eingelesen. Der String wird in eine Double-Zahl konvertiert und einer Variablen zugewiesen. Der Wert dieser Variablen wird dann mit dem Wert 1000 verglichen. Ist der Rechnungsbetrag InvoiceAmount größer als 1000, liefert die Bedingung den Wert True; der Rabatt wird berechnet und ein Text als Information ausgegeben. Der Rechnungsbetrag wird ausgegeben. Wenn kein Rabatt gewährt wird, wird der Anweisungsblock übersprungen und der Rechnungsbetrag unverändert ausgegeben . 66 © HERDT-Verlag 7 Visual Basic 2015 – Grundlagen Programmierung Beschreibung Shortcut + T Schleife: Do While...Loop DoWhile Schleife: While ... End While While Schleife: Do Until...Loop DoUntil Schleife: Do...Loop While DoLoopWh Schleife: Do...Loop Until DoLoopUn Schleife: For...Next For 7.12 Übungen Mit Verzweigungen und Wiederholungen arbeiten Übungsdatei: -1. Ergebnisdateien: TestResultat.sln, TestResultat2.sln, TestResultat3.sln Schreiben Sie eine Konsolenanwendung mit dem Namen TestResultat, die die Bewertung eines Tests als Text ausgibt. In dem Test können maximal 10 Punkte erreicht werden. Sofern mindestens 7 Punkte erreicht wurden, gilt der Test als bestanden. Die Punktzahl soll im Programm eingelesen werden (Readline). Die Textausgaben sollen folgendermaßen lauten: Mindestens 7 Punkte: Der Test ist bestanden! anderenfalls: Der Test ist leider nicht bestanden! 2. Werten Sie so lange neue Punktzahlen aus, bis als Punktzahl der Wert -1 eingegeben wird, und prüfen Sie zusätzlich, ob die Punktzahl im zulässigen Bereich liegt. Anderenfalls soll der Text ungueltige Punktzahl! ausgegeben werden. 3. Erweitern Sie die Auswertung der Punktzahl aus wie folgt: 10 Punkte: Ergebnis: Sehr gut 9 Punkte: Ergebnis: Gut 8 Punkte: Ergebnis: Befriedigend 7 Punkte: Ergebnis: Ausreichend weniger als 7 Punkte: Ergebnis: Leider nicht genuegend Punkte erreicht Mit dem If-Operator auswerten Übungsdatei: -- 78 Ergebnisdatei: Discount2A.sln 1. Schreiben Sie eine Konsolenanwendung mit dem Namen Discount2A, die den Rabatt für einen Rechnungsbetrag berechnet (siehe Beispiel Discount2.sln in Abschnitt 8.3). 2. Verwenden Sie für die Rabattberechnung den If-Operator. © HERDT-Verlag 7 Kontrollstrukturen Mit Wiederholungen arbeiten Übungsdatei: -1. Ergebnisdatei: Passwortabfrage.sln Erstellen Sie eine Windows-Anwendung zur Passwort-Abfrage. Verwenden Sie einen Button- und zwei TextBox-Komponenten. 2. Aktivieren Sie bei der Ausgabe-Textbox über das SmartTask-Menü der Textbox die Eigenschaft Multiline. Setzen Sie die Eigenschaft Enabled der Ausgabe-Textbox auf False. Tragen Sie bei der Eigenschaft PasswordChar der Textbox für die Eingabe das Zeichen ein, damit die Passwörter bei der Eingabe verdeckt erscheinen. 3. Legen Sie zwei Passwörter (z. B. für Administrator und für User) fest. Nachdem der Benutzer die Schaltfläche OK betätigt hat, soll die eingegebene Zeichenkette geprüft werden: Je nachdem, welches der Passwörter der Anwender eingibt, soll in der Textbox folgender Text ausgegeben werden: Sie sind als Administrator angemeldet. Oder: Sie sind als User angemeldet. Bei jedem anderen eingegebenen Passwort soll Sie sind nur als Gast angemeldet. angezeigt werden. Zählergesteuerte Wiederholung anwenden Übungsdatei: -- Ergebnisdatei: Fortschrittsanzeige.sln 1. Erzeugen Sie eine Windows-Anwendung zur grafischen Anzeige eines Bearbeitungsfortschritts. Verwenden Sie eine ProgressBar-, eine Label- und drei Button-Komponenten. 2. Erstellen Sie eine Schleifenkonstruktion, um die Fortschrittsanzeige vom Minimum zum Maximum zu bewegen. Setzen Sie dazu die Eigenschaft Minimum der ProgressBar-Komponente auf den Wert 0 und die Eigenschaft Maximum auf den Wert 100. Erhöhen Sie in einer Schleife den Wert der ProgressBarKomponente (Eigenschaft Value) bis zum Maximalwert (100). 3. Zeigen Sie den Fortschritt außerdem mithilfe der Label-Komponente an . 4. Um den Fortschritt zu sehen, müssen Sie die Abarbeitung der Schleife bremsen. Mithilfe der folgenden Anweisung wartet die Anwendung bei jedem Schleifendurchlauf 100 Millisekunden: System.Threading.Thread.Sleep(100). 5. Mit der Anweisung Application.DoEvents() können Sie erreichen, dass bei jedem Schleifendurchlauf geprüft wird, ob beim Betriebssystem angemeldete Aktionen durchgeführt werden müssen. Dadurch wird es möglich, z. B. die Anwendung schon vor dem vollständigen Abarbeiten der Schleife durch Betätigen der Schaltfläche Schließen zu beenden. 6. Stellen Sie sicher, dass die Schaltflächen Start und Zurücksetzen nicht betätigt werden können, solange die Schleife abgearbeitet wird (Eigenschaft Enabled). © HERDT-Verlag 79 Impressum Matchcode: VBNET2015 Autor: Ricardo Hernández Garcia Redaktion: Andrea Weikert Produziert im HERDT-Digitaldruck 1. Ausgabe, Dezember 2015 HERDT-Verlag für Bildungsmedien GmbH Am Kümmerling 21-25 55294 Bodenheim Internet: www.herdt.com E-Mail: [email protected] © HERDT-Verlag für Bildungsmedien GmbH, Bodenheim Alle Rechte vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren) ohne schriftliche Genehmigung des Verlags reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Dieses Buch wurde mit großer Sorgfalt erstellt und geprüft. Trotzdem können Fehler nicht vollkommen ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Wenn nicht explizit an anderer Stelle des Werkes aufgeführt, liegen die Copyrights an allen Screenshots beim HERDTVerlag. Sollte es trotz intensiver Recherche nicht gelungen sein, alle weiteren Rechteinhaber der verwendeten Quellen und Abbildungen zu finden, bitten wir um kurze Nachricht an die Redaktion. Die in diesem Buch und in den abgebildeten bzw. zum Download angebotenen Dateien genannten Personen und Organisationen, Adress- und Telekommunikationsangaben, Bankverbindungen etc. sind frei erfunden. Eventuelle Übereinstimmungen oder Ähnlichkeiten sind unbeabsichtigt und rein zufällig. Die Bildungsmedien des HERDT-Verlags enthalten Verweise auf Webseiten Dritter. Diese Webseiten unterliegen der Haftung der jeweiligen Betreiber, wir haben keinerlei Einfluss auf die Gestaltung und die Inhalte dieser Webseiten. Bei der Bucherstellung haben wir die fremden Inhalte daraufhin überprüft, ob etwaige Rechtsverstöße bestehen. Zu diesem Zeitpunkt waren keine Rechtsverstöße ersichtlich. Wir werden bei Kenntnis von Rechtsverstößen jedoch umgehend die entsprechenden Internetadressen aus dem Buch entfernen. Die in den Bildungsmedien des HERDT-Verlags vorhandenen Internetadressen, Screenshots, Bezeichnungen bzw. Beschreibungen und Funktionen waren zum Zeitpunkt der Erstellung der jeweiligen Produkte aktuell und gültig. Sollten Sie die Webseiten nicht mehr unter den angegebenen Adressen finden, sind diese eventuell inzwischen komplett aus dem Internet genommen worden oder unter einer neuen Adresse zu finden. Sollten im vorliegenden Produkt vorhandene Screenshots, Bezeichnungen bzw. Beschreibungen und Funktionen nicht mehr der beschriebenen Software entsprechen, hat der Hersteller der jeweiligen Software nach Drucklegung Änderungen vorgenommen oder vorhandene Funktionen geändert oder entfernt.
© Copyright 2024 ExpyDoc