Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
Pfeil 2 Grundlagen
Pfeil 2.1 Variablen und Datentypen
Pfeil 2.1.1 Namen und Werte
Pfeil 2.1.2 Deklarationen
Pfeil 2.1.3 Datentypen
Pfeil 2.1.4 Gültigkeitsbereich
Pfeil 2.1.5 Konstanten
Pfeil 2.1.6 Enumerationen
Pfeil 2.2 Operatoren
Pfeil 2.2.1 Rechenoperatoren
Pfeil 2.2.2 Vergleichsoperatoren
Pfeil 2.2.3 Logische Operatoren
Pfeil 2.2.4 Verkettungsoperator
Pfeil 2.2.5 Zuweisungsoperatoren
Pfeil 2.2.6 Rangfolge der Operatoren
Pfeil 2.3 Einfache Steuerelemente
Pfeil 2.3.1 Panel
Pfeil 2.3.2 Zeitgeber
Pfeil 2.3.3 Textfelder
Pfeil 2.3.4 Zahlenauswahlfeld
Pfeil 2.4 Verzweigungen
Pfeil 2.4.1 Einzeiliges If...Then...Else
Pfeil 2.4.2 If...Then...Else-Block
Pfeil 2.4.3 Select Case
Pfeil 2.4.4 Funktion IIf
Pfeil 2.4.5 Funktion Choose
Pfeil 2.4.6 Übungen
Pfeil 2.5 Verzweigungen und Steuerelemente
Pfeil 2.5.1 Kontrollkästchen
Pfeil 2.5.2 Optionsschaltfläche
Pfeil 2.5.3 Mehrere Ereignisse in einer Prozedur behandeln
Pfeil 2.5.4 Mehrere Gruppen von Optionsschaltflächen
Pfeil 2.5.5 Prozedur ohne Ereignis, Modularisierung
Pfeil 2.6 Schleifen
Pfeil 2.6.1 For ... Next
Pfeil 2.6.2 Do ... Loop
Pfeil 2.6.3 With
Pfeil 2.6.4 Übungen
Pfeil 2.7 Schleifen und Steuerelemente
Pfeil 2.7.1 Listenfeld
Pfeil 2.7.2 Listenfeld füllen
Pfeil 2.7.3 Wichtige Eigenschaften
Pfeil 2.7.4 Wechsel der Auswahl
Pfeil 2.7.5 Wichtige Methoden
Pfeil 2.7.6 Mehrfachauswahl
Pfeil 2.7.7 Kombinationsfelder

Rheinwerk Computing - Zum Seitenanfang

2.6 SchleifenZur nächsten Überschrift

Schleifen werden in Programmen häufig benötigt. Sie ermöglichen den mehrfachen Durchlauf von Anweisungen. Darin liegt eine besondere Stärke der Programmierung allgemein: die schnelle wiederholte Bearbeitung ähnlicher Vorgänge. Es gibt die Schleifenstrukturen: Do...Loop, For...Next, For Each...In... und With.

Mithilfe der Strukturen steuern Sie die Wiederholungen eines Anweisungsblocks (die Anzahl der Schleifendurchläufe). Dabei wird der Wahrheitswert eines Ausdrucks (der Schleifenbedingung) oder der Wert eines numerischen Ausdrucks (Wert des Schleifenzählers) benötigt.

Die Schleife For Each...In... wird meist bei Feldern oder Collections (Auflistungen) eingesetzt, siehe Abschnitt 4.5.8. Die Anweisung With dient zur Steuerung einer besonderen Schleife mit nur einem Durchlauf.


Rheinwerk Computing - Zum Seitenanfang

2.6.1 For ... NextZur nächsten ÜberschriftZur vorigen Überschrift

Falls die Anzahl der Schleifendurchläufe bekannt oder vor Beginn der Schleife berechenbar ist, sollten Sie die For... Next-Schleife verwenden. Ihr Aufbau sieht wie folgt aus:

For Zähler = Anfang To Ende [ Step Schritt ]
[ Anweisungen ]
[ Exit For ]
[ Anweisungen ]
Next [ Zähler ]

Die Zahlen-Variable Zähler wird zunächst auf den Wert von Anfang gesetzt. Nach jedem Durchlauf wird sie um den Wert von Schritt verändert, also vergrößert oder verkleinert. Falls Step Schritt nicht angegeben wurde, wird die Variable um 1 vergrößert. Der neue Wert von Zähler wird mit dem Wert von Ende verglichen.

  • Falls die Schrittweite positiv ist und der Wert von Zähler nicht größer als der Wert von Ende ist, wird die Schleife wiederum durchlaufen.
  • Falls die Schrittweite negativ ist und der Wert von Zähler nicht kleiner als der Wert von Ende ist, wird die Schleife ebenfalls wiederum durchlaufen.
  • Falls die Schrittweite positiv ist und der Wert von Zähler größer als der Wert von Ende ist oder falls die Schrittweite negativ ist und der Wert von Zähler kleiner als der Wert von Ende ist, wird die Schleife beendet.

Die Anweisung Exit For können Sie einsetzen, um die Schleife aufgrund einer speziellen Bedingung sofort zu verlassen.

In dem folgenden Programm im Projekt ForNext werden durch Aufruf von vier Buttons vier unterschiedliche Schleifen durchlaufen, siehe Abbildung 2.29.

Abbildung

Abbildung 2.29 Verschiedene For-Schleifen

Der Programmcode:

Public Class Form1
Private Sub cmdSchleife1_Click(...) Handles ...
Dim i As Integer
lblA1.Text = ""

For i = 3 To 7
lblA1.Text &= i & vbCrLf
Next
End Sub

Private Sub cmdSchleife2_Click(...) Handles ...
Dim i As Integer
lblA2.Text = ""

For i = 3 To 11 Step 2
lblA2.Text &= i & vbCrLf
Next
End Sub

Private Sub cmdSchleife3_Click(...) Handles ...
Dim i As Integer
lblA3.Text = ""

For i = 7 To 3 Step –1
lblA3.Text &= i & vbCrLf
Next
End Sub

Private Sub cmdSchleife4_Click(...) Handles ...
Dim d As Double
lblA4.Text = ""

For d = 3.5 To 7.5 Step 1.5
lblA4.Text &= d & vbCrLf
Next
End Sub
End Class

Listing 2.22 Projekt »ForNext«

Zur Erläuterung der ersten Schleife:

  • Als Zählervariable dient i.
  • Die Schleife wird erstmalig mit i = 3 und letztmalig mit i = 7 durchlaufen.
  • Es ist keine Schrittweite angegeben, also wird als Schrittweite 1 genommen.
  • Statt Next hätte man zur größeren Deutlichkeit auch Next i schreiben können.

Zur Erläuterung der restlichen Schleifen:

  • Bei der zweiten Schleife wurde die Schrittweite 2 gewählt.
  • Die dritte Schleife läuft abwärts, daher muss eine negative Schrittweite gewählt werden.
  • In der vierten Schleife wird gezeigt, dass eine Schleife auch nicht-ganzzahlige Werte durchlaufen kann.

Rheinwerk Computing - Zum Seitenanfang

2.6.2 Do ... LoopZur nächsten ÜberschriftZur vorigen Überschrift

Ist die Anzahl der Schleifendurchläufe nicht bekannt bzw. vor Beginn der Schleife nicht berechenbar, so sollten Sie die Do ... Loop-Schleife verwenden. Es gibt sie in fünf verschiedenen Varianten:

  • Do While...Loop: Prüft die Bedingung zum Weiterlaufen der Schleife am Anfang der Schleife.
  • Do...Loop While: Prüft die Bedingung zum Weiterlaufen der Schleife am Ende der Schleife.
  • Do Until...Loop: Prüft die Bedingung zum Abbruch der Schleife am Anfang der Schleife.
  • Do...Loop Until: Prüft die Bedingung zum Abbruch der Schleife am Ende der Schleife.
  • Do...Loop: Die Bedingung zum Weiterlaufen oder Abbruch der Schleife wird nicht geprüft, daher ist eine Verzweigung in der Schleife und ein Exit Do zur Beendigung der Schleife notwendig.

Der allgemeine Aufbau sieht wie folgt aus:

Do { While | Until } Bedingung
[ Anweisungen ]
[ Exit Do ]
[ Anweisungen ]
Loop

oder

Do
[ Anweisungen ]
[ Exit Do ]
[ Anweisungen ]
Loop { While | Until } Bedingung

Im folgenden Programm im Projekt DoLoop werden alle fünf Möglichkeiten genutzt. Es werden Zahlen addiert, solange die Summe der Zahlen kleiner als 5 ist, siehe Abbildung 2.30. Da die Zahlen durch einen Zufallsgenerator erzeugt werden, ist die Anzahl der Schleifendurchläufe nicht vorhersagbar.

Der Zufallszahlengenerator wird mithilfe der Funktion Rnd() realisiert. Diese liefert quasizufällige Zahlen zwischen 0 und 1. Der Zufallszahlengenerator muss mithilfe der Prozedur Randomize() vor der Benutzung initialisiert werden, da anderenfalls immer die gleichen Zufallszahlen geliefert würden. Die Initialisierung wird pro Programmaufruf einmalig beim Laden des Formulars vorgenommen.

Abbildung

Abbildung 2.30 Bedingungsgesteuerte Schleife

Dieser Zeitpunkt wird durch das Ereignis Load gekennzeichnet. Sie erstellen den Rahmen dieser Ereignisprozedur, indem Sie einen Doppelklick auf einer freien Stelle des Formulars ausführen. Die zugehörige Ereignisprozedur behandelt das Ereignis MyBase.Load. Mit MyBase können Sie auf die Basisklasse der Klasse zugreifen, in der Sie sich befinden; in diesem Fall ist das die Klasse des Formulars Form1. Mehr zum Begriff MyBase finden Sie in Abschnitt 5.8.

Public Class Form1
Private Sub Form1_Load(...) Handles MyBase.Load
Randomize()
End Sub

Private Sub cmdSchleife1_Click(...) Handles ...
Dim Summe As Single
lblAnzeige.Text = ""
Summe = 0
Do While Summe < 5
Summe += Rnd()
lblAnzeige.Text &= Summe & vbCrLf
Loop
lblAnzeige.Text &= "Fertig!"
End Sub

Private Sub cmdSchleife2_Click(...) Handles ...
Dim Summe As Single
lblAnzeige.Text = ""
Summe = 0
Do
Summe += Rnd()
lblAnzeige.Text &= Summe & vbCrLf
Loop While Summe < 5
lblAnzeige.Text &= "Fertig!"
End Sub

Private Sub cmdSchleife3_Click(...) Handles ...
Dim Summe As Single
lblAnzeige.Text = ""
Summe = 0
Do Until Summe >= 5
Summe += Rnd()
lblAnzeige.Text &= Summe & vbCrLf
Loop
lblAnzeige.Text &= "Fertig!"
End Sub

Private Sub cmdSchleife4_Click(...) Handles ...
Dim Summe As Single
lblAnzeige.Text = ""
Summe = 0
Do
Summe += Rnd()
lblAnzeige.Text &= Summe & vbCrLf
Loop Until Summe >= 5
lblAnzeige.Text &= "Fertig!"
End Sub

Private Sub cmdSchleife5_Click(...) Handles ...
Dim Summe As Single
lblAnzeige.Text = ""
Summe = 0
Do
Summe += Rnd()
lblAnzeige.Text &= Summe & vbCrLf
If Summe >= 5 Then Exit Do
Loop
lblAnzeige.Text &= "Fertig!"
End Sub
End Class

Listing 2.23 Projekt »DoLoop«

Zur Erläuterung:

  • Im Folgenden wird nur die erste Ereignisprozedur cmdSchleife1_Click() erläutert. Die anderen sind vergleichbar aufgebaut. Auf die unterschiedliche Schleifensteuerung wurde bereits weiter oben eingegangen.
  • Der Inhalt des Labels wird von alten Ausgaben gelöscht.
  • Die Variable Summe wird zunächst mit dem Wert 0 initialisiert. Dies ist in Visual Basic eigentlich nicht nötig, gehört aber zum guten Programmierstil, da Sie auf diese Weise den Wert der Variablen zu Beginn der Schleife sicherstellen können.
  • Zu Beginn der Schleife wird geprüft, ob die Summe der Zahlen kleiner als 5 ist. Trifft dies zu, kann die Schleife durchlaufen werden.Hinweis: Bei einer solchen kopfgesteuerten Schleife (d. h., die Abbruchbedingung wird im Kopf der Schleife geprüft) kann es vorkommen, dass sie niemals durchlaufen wird.
  • Der Wert der Variablen Summe wird um eine Zufallszahl zwischen 0 und 1 erhöht.
  • Der Inhalt des Labels wird um den aktuellen Wert der Summe und einen Zeilenumbruch verlängert.
  • Sie kommen zum Ende der Schleife, zur Anweisung Loop. Sie führt dazu, dass das Programm wieder zu Beginn der Schleife fortsetzt. Es wird wiederum geprüft, ob die Summe der Zahlen kleiner als 5 ist. Sobald dies nicht mehr zutrifft, läuft das Programm hinter der Anweisung Loop weiter.
  • Es wird die Ausgabe Fertig! erzeugt.

Rheinwerk Computing - Zum Seitenanfang

2.6.3 WithZur nächsten ÜberschriftZur vorigen Überschrift

Mithilfe von With führen Sie eine Reihe von Anweisungen für ein einzelnes Objekt durch. Dabei wird der einmal erstellte Bezug zum Objekt mehrfach verwendet. Bei einem längeren Objektnamen ist dies sehr nützlich und übersichtlich. Der Aufbau sieht wie folgt aus:

With Objekt
[ Anweisungen ]
End With

Ein Beispiel im Projekt WithBlock:

Public Class Form1
Private Sub cmdAnzeige_Click(...) Handles ...
With lblAnzeige
.BorderStyle = BorderStyle.Fixed3D
.BackColor = Color.Yellow
.Text = "Test"
.Location = New Point(20, 50)
End With
End Sub
End Class

Listing 2.24 Projekt »WithBlock«

Zur Erläuterung:

  • Die Eigenschaften des Labels lblAnzeige werden mithilfe von With geändert.
  • Die Eigenschaften Rahmenstil, Hintergrundfarbe, Textinhalt und Position werden nacheinander gesetzt. Dabei muss zu Beginn der Anweisung jeweils nur ein Punkt angegeben werden. Da das Programm sich innerhalb des With-Blocks befindet, ist es klar, auf welches Objekt sich die Änderungen beziehen.

Rheinwerk Computing - Zum Seitenanfang

2.6.4 ÜbungenZur nächsten ÜberschriftZur vorigen Überschrift

Anhand einer Reihe von Übungsaufgaben zu Schleifen (und Verzweigungen) werden im Folgenden einige typische Probleme der Programmierung in Visual Basic trainiert. Der visuelle Teil der Lösung enthält in der Regel nur ein einfaches Textfeld zur Eingabe, einen oder zwei Buttons zum Durchführen der Aufgabe und ein einfaches Label zur Ausgabe.

Übung ÜForNext1

For-Schleife: Schreiben Sie ein Programm mit einer einfachen Schleife, das nacheinander die folgenden Zahlen ausgibt: 35; 32,5; 30; 27,5; 25; 22,5; 20.

Übung ÜForNext2

For-Schleife: Erweitern Sie die vorherige Aufgabe. Am Ende der Zeile sollen Summe und Mittelwert aller Zahlen angezeigt werden, siehe Abbildung 2.31.

Abbildung

Abbildung 2.31 Übung ÜForNext1 und 2

Übung ÜDoLoop

Do...Loop-Schleife: Schreiben Sie ein Programm, mit dessen Hilfe eine eingegebene Zahl wiederholt halbiert und ausgegeben wird. Das Programm soll beendet werden, wenn das Ergebnis der Halbierung kleiner als 0,001 ist, siehe Abbildung 2.32.

Abbildung

Abbildung 2.32 Übung ÜDoLoop

Übung ÜZahlenraten

If...Else: Schreiben Sie ein Programm, mit dem das Spiel Zahlenraten gespielt werden kann: Per Zufallsgenerator wird eine Zahl zwischen 1 und 100 erzeugt, aber nicht angezeigt. Der Benutzer soll so lange Zahlen eingeben, bis er die Zahl erraten hat. Als Hilfestellung soll jedes Mal ausgegeben werden, ob die eingegebene Zahl größer oder kleiner als die zu ratende Zahl ist, siehe Abbildung 2.33.

Abbildung

Abbildung 2.33 Übung ÜZahlenraten

Übung ÜSteuertabelle

For-Schleife, If...Else oder Select Case: Erweitern Sie das Programm aus Übung ÜSteuerbetrag. Schreiben Sie ein Programm, das zu einer Reihe von Gehältern u. a. den Steuerbetrag berechnet und ausgibt. In Tabelle 2.14 sind die Steuersätze angegeben.

Tabelle 2.14 Übung ÜSteuertabelle

Gehalt Steuersatz

bis einschl. 12.000 €

12 %

von 12.000 bis einschl. 20.000 €

15 %

von 20.000 bis einschl. 30.000 €

20 %

über 30.000 €

25 %

Es sollen für jedes Gehalt von 5.000 € bis 35.000 € in Schritten von 3.000 € folgende vier Werte ausgegeben werden: Gehalt, Steuersatz, Steuerbetrag, Gehalt abzüglich Steuerbetrag. Jedes Gehalt soll mit den zugehörigen Werten in einer eigenen Zeile ausgegeben werden, siehe Abbildung 2.34.

Abbildung

Abbildung 2.34 Übung ÜSteuertabelle



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern