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 ModuleAusgabe:
positiv negativ null
FizzBuzz
gut bis befriedigend
groß
Standardwert
True
True
FalseAndAlso 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 ModuleAusgabe:
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 9Sub 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 ModuleAusgabe:
49 1307674368000
Hallo, Mia!
Servus, Tom!
Moin, Zoe!
2 1
10
1 9
Integer 5 / String x
42Merke
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) undFunction(mitReturn);ByVal,ByRef,Optional,ParamArray- Lambdas:
Function(x) x * 2
Übungsaufgabe
Schreibe eine Funktion IstPrim und gib alle Primzahlen bis 50 aus.
Quiz zur Selbstkontrolle
Was ist der Unterschied zwischen Sub und Function?
- Function gibt einen Wert zurück, Sub nicht (richtig)
- Kein Unterschied
- Sub ist schneller
- Function hat keine Parameter
Was bedeutet ByRef?
- Parameter wird als Referenz übergeben (Original änderbar) (richtig)
- Der Parameter ist konstant
- Parameter ist optional
- Der Parameter ist ein Array
Wofür steht AndAlso?
- Kurzschluss-Und (richtig)
- Bitweises Und
- Verkettung
- Zuweisung
Weiter im Kurs
Zurück: Einführung und erstes Programm
Weiter: Arrays, Listen, Dictionaries und LINQ
Alle Kapitel: Visual Basic .NET im Überblick