EMZETT.
Login

Kurz: Sub Main() Console.WriteLine(Vorzeichen(5) & ” ” & Vorzeichen(-2) & ” ” & Vorzeichen(0))

Teil des Kurses Visual Basic .NET

Kapitel 2 von 8 im Kurs Visual Basic .NET. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Bedingungen

Module Program
    Function Vorzeichen(n As Integer) As String
        If n > 0 Then
            Return "positiv"
        ElseIf n < 0 Then
            Return "negativ"
        Else
            Return "null"
        End If
    End Function
 
    Sub Main()
        Console.WriteLine(Vorzeichen(5) & " " & Vorzeichen(-2) & " " & Vorzeichen(0))
 
        Dim n As Integer = 15
        If n Mod 15 = 0 Then
            Console.WriteLine("FizzBuzz")
        ElseIf n Mod 3 = 0 Then
            Console.WriteLine("Fizz")
        Else
            Console.WriteLine(n)
        End If
 
        Dim note As Integer = 2
        Select Case note
            Case 1
                Console.WriteLine("sehr gut")
            Case 2, 3
                Console.WriteLine("gut bis befriedigend")
            Case 4 To 5
                Console.WriteLine("ausreichend bis mangelhaft")
            Case Is > 5
                Console.WriteLine("ungültig")
            Case Else
                Console.WriteLine("unbekannt")
        End Select
 
        Dim status As String = If(n > 10, "groß", "klein")
        Console.WriteLine(status)
        Console.WriteLine(If(Nothing, "Standardwert"))
        Console.WriteLine(n > 3 AndAlso n < 20)
        Console.WriteLine(n < 3 OrElse n = 15)
        Console.WriteLine(Not (n = 15))
    End Sub
End Module

Ausgabe:

positiv negativ null
FizzBuzz
gut bis befriedigend
groß
Standardwert
True
True
False

AndAlso und OrElse sind die Kurzschluss-Operatoren; And und Or werten beide Seiten aus.

Schleifen

Module Program
    Sub Main()
        For i As Integer = 1 To 5
            Console.Write(i & " ")
        Next
        Console.WriteLine()
 
        For i As Integer = 10 To 1 Step -3
            Console.Write(i & " ")
        Next
        Console.WriteLine()
 
        For Each farbe As String In {"rot", "gruen", "blau"}
            Console.Write(farbe & " ")
        Next
        Console.WriteLine()
 
        Dim k As Integer = 0
        While k < 3
            Console.Write("w" & k & " ")
            k += 1
        End While
        Console.WriteLine()
 
        Dim j As Integer = 10
        Do
            Console.Write(j & " ")
            j += 1
        Loop Until j >= 13
        Console.WriteLine()
 
        For i As Integer = 1 To 10
            If i Mod 2 = 0 Then Continue For
            If i > 7 Then Exit For
            Console.Write(i & " ")
        Next
        Console.WriteLine()
 
        For z As Integer = 1 To 3
            For s As Integer = 1 To 3
                Console.Write((z * s).ToString().PadLeft(3))
            Next
            Console.WriteLine()
        Next
    End Sub
End Module

Ausgabe:

1 2 3 4 5
10 7 4 1
rot gruen blau
w0 w1 w2
10 11 12
1 3 5 7
  1  2  3
  2  4  6
  3  6  9

Sub und Function

Sub hat keinen Rückgabewert, Function liefert einen. Parameter sind standardmäßig ByVal (Kopie), mit ByRef ändert man das Original:

Module Program
    Function Quadrat(x As Integer) As Integer
        Return x * x
    End Function
 
    Function Fakultaet(n As Integer) As Long
        If n <= 1 Then Return 1
        Return n * Fakultaet(n - 1)
    End Function
 
    Sub Begruesse(name As String, Optional gruss As String = "Hallo")
        Console.WriteLine(gruss & ", " & name & "!")
    End Sub
 
    Sub Tausche(ByRef a As Integer, ByRef b As Integer)
        Dim tmp As Integer = a
        a = b
        b = tmp
    End Sub
 
    Function Summe(ParamArray zahlen() As Integer) As Integer
        Dim s As Integer = 0
        For Each z In zahlen
            s += z
        Next
        Return s
    End Function
 
    Function MinMax(werte As Integer()) As (Min As Integer, Max As Integer)
        Return (werte.Min(), werte.Max())
    End Function
 
    Function Ueberladen(x As Integer) As String
        Return "Integer " & x
    End Function
 
    Function Ueberladen(x As String) As String
        Return "String " & x
    End Function
 
    Sub Main()
        Console.WriteLine(Quadrat(7) & " " & Fakultaet(15))
        Begruesse("Mia")
        Begruesse("Tom", "Servus")
        Begruesse(gruss:="Moin", name:="Zoe")
        Dim p As Integer = 1, q As Integer = 2
        Tausche(p, q)
        Console.WriteLine(p & " " & q)
        Console.WriteLine(Summe(1, 2, 3, 4))
        Dim mm = MinMax({5, 3, 9, 1})
        Console.WriteLine(mm.Min & " " & mm.Max)
        Console.WriteLine(Ueberladen(5) & " / " & Ueberladen("x"))
        Dim verdopple As Func(Of Integer, Integer) = Function(x) x * 2
        Console.WriteLine(verdopple(21))
    End Sub
End Module

Ausgabe:

49 1307674368000
Hallo, Mia!
Servus, Tom!
Moin, Zoe!
2 1
10
1 9
Integer 5 / String x
42

Merke

  • If/ElseIf/Else/End If, Select Case, If(bedingung, a, b) für Verzweigungen
  • Schleifen: For ... Next, For Each, While, Do ... Loop
  • Sub (ohne Wert) und Function (mit Return); ByVal, ByRef, Optional, ParamArray
  • Lambdas: Function(x) x * 2

Übungsaufgabe

Schreibe eine Funktion IstPrim und gib alle Primzahlen bis 50 aus.

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Einführung und erstes Programm

Weiter: Arrays, Listen, Dictionaries und LINQ

Alle Kapitel: Visual Basic .NET im Überblick