Visual Basic 2 – Typen

Letztes Mal hast du gelernt, wie man Zahlen in Variablen packt und etwas damit rumrechnet. Jedoch ist das natürlich noch bei Weitem nicht die ganze Welt. Wie kannst du zum Beispiel einen Liebesbrief verschicken? Die meisten wären vermutlich nicht begeistert, ein nur aus Zahlen bestehendes Liebesgeständnis zu erhalten. Schauen wir uns also als nächstes Wörter, beziehungsweise Zeichenketten oder besser Strings an.

Wenn wir eine Variable anlegen können wir ihr auch als Wert einen String zuweisen. Das geschieht, indem wir den gewünschten Text in Gänsefüßchen schreiben.

Deklaration der Variable „myFancyString“ mit dem Wert „I love to Code!“

Wenn wir nun mehrere solcher Variablen anlegen, dann könnten wir auch wieder spannende Dinge damit tun.

Mit dem Pluszeichen können wir Strings aneinanderketten. Die Variable „message“ hat am Ende den Wert „Hello World!“. Wie bei Zahlen können wir auf der Rechten Seite des Gleichzeichens Variablen und feste Werte mischen. Die Variablen werden durch ihren Wert ersetzt und dann wird alles aneinander geklatscht.

Damit haben wir jetzt Zugriff auf Worte und Zahlen, doch damit entsteht soft die Frage, was passiert, wenn wir beides mischen?

Die ersten zwei Zeile sind relativ klar. Doch dann?

Wir erstellen eine neue Variable „whatIsThis“ und Weisen ihr einen Wert zu. Dazu „addieren“ wir eine Variable in der eine Zahl steht mit einer in der ein Wort/String steht. Das macht erstmal keinen Sinn. Der Computer wird in diesem Fall einfach davon ausgehen, dass wir nicht die Zahl 5 gemeint haben, sondern das Wort „5“ und dann die beiden Worte aneinandersetzten.

Im zweiten Fall wird das Wort „5“ mit der Zahl 5 „multipliziert“. Auch hier macht das ganze nur sinn, wenn wir davon ausgehen, dass nicht das Wort, sondern die Zahl gemeint war. Dann können wir 5*5 = 25 rechnen.

Was ein Chaos…

Das ganze Problem kann umgangen werden wenn wir keine halben Sachen machen und auf zwei Pferden reiten, sondern uns direkt am Anfang entscheiden, ob eine Variable nun ein String oder eine Zahl sein soll. Und damit nicht genug… Der begriff Zahl ist auch sehr dehnbar. Es gibt ganze Zahlen, wie -1,0,1,2,3… oder Kommazahlen, wie 3.1415 oder gar komplexe Zahlen, wie 5 + 3i. Aber mit letzteren wollen wir uns erstmal nicht beschäftigen.

Um nun etwas Ordnung in unseren Variablenlagerplatz zu bekommen könnten wir doch unsere Boxen mit den Werten einfach noch zusätzlich zu dem Namen, mit dem Typ des Inhalts beschriften.

Wenn wir nun versuchen einen String in eine Box mit dem Typ Ganzzahl zu legen bekommen wir sofort auf die Finger gehauen! In den meisten Programmiersprachen gibt es zumindest folgende Grundtypen:

  • Integer (Ganzzahlen)
  • Single (Kommazahlen)
  • Double (Genauere Kommazahlen)
  • String (Zeichenketten)
  • Boolean (Wahr oder Falsch)
Variablenzuweisung funktioniert nur, wenn der Wert den gleichen Typ hat

Im Code können wir einer Variable beim anlegen durch das Wörtchen „as“ einen Typ zuweisen:

Schon sehen wir schon, dass im Code die „falschen“ Stellen rot unterkringelt werden. Wenn wir jetzt eine Stringvariable als Integer interpretieren wollen, müssen wir das explizit angeben. Und können somit aber auch vorher darüber nachdenken, ob das immer Sin ergibt.

Im einen Fall können wir die Variable durch das anfügen von „ToString“ umwandeln. Dann haben wir zwei Strings, die wir durch das „+“ aneinanderhängen können. Das Ergebnis ist wieder ein String und dieser kann natürlich somit auch in die Variable „whatIsThis“ geschrieben werden, da sie den selben Typ hat.

Um einen String in einen Integer umzuwandeln verwenden wir „CInt( )“. Das ist die Kurzform von „Convert to Integer“. Warum es im einen Fall so und im anderen falls so konvertiert wird werden wir später sehen. Doch um eine Nicht-String-Variable in einen anderen Datentyp umzuwandeln können wir CInt( ), CBool( ), CSng( ), CDbl( ) verwenden.

Das Funktioniert natürlich nur, wenn es sinn ergibt… CInt(„Hello“) wird zu einem Fehler führen, da wir „Hello“ nicht in eine Zahl umwandeln können.

Der Typ eines Wertes kann konvertiert werden, damit er zur Variable passt.

Quiz

Versuche herauszufinden, welche Datentypen die folgenden Variablen eigentlich haben sollten.

Welchen Typ sollte „a“ haben

String

Da wird der Wert „Hallo“ zugewiesen. Die Gänsefüßchen verraten uns, dass es sich hierbei um einen String handelt. Somit sollte auch die Variable, die den Wert hält vom Typ String sein.

Welchen Typ sollte „b“ haben

Single oder Double

Der Wert 3.1415 ist eine Kommazahl. Das heißt wir können entweder Single oder Double verwenden. Der Unterschied liegt darin, wie genau die Zahl sein soll und wie groß sie maximal und minimal werden kann.

Für mehr Informationen kannst du gerne folgenden Link anschauen oder einfach die Suchmaschine anwerfen. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types

Welchen Typ sollte „c“ haben

Double

Der Wert „3“ ist zwar ein String, was an den Gänsefüßchen zu erkennen ist, allerdings wird er durch das „CDbl( )“ in ein Double umgewandelt und somit sollte c den Typ Double haben.

Schreibe einen Kommentar