Strukturierte Datentypen III
Aufzählungstypen ergänzen Datenstrukturen und erleichtern die Programmierarbeit ungemein, indem sie Variablen für dich durchnummerieren. Wie das genau geht, erklären wir dir jetzt.
Inhaltsübersicht
Aufzählungstypen als Spezialfall
Zusätzlich zu den normalen strukturierten Datentypen gibt es die sogenannten Aufzählungstypen. Bei diesen handelt es sich – wie der Name schon verrät – um Aufzählungen verschiedener Zustände, die wie in einem Array aufgelistet werden.
Anwendung von Aufzählungstypen – Beispiel
Diese sind nicht nur Auflistungen. Eigentlich kannst du Aufzählungstypen mehr als Konstanten betrachten, die vom Compiler wie Variablen überprüft werden. Aber warum ist das jetzt so praktisch?
Stell dir einmal vor, du arbeitest für das FBI und sollst eine Datenbank für vermisste Personen anlegen. Du erstellst also eine Liste voller strukturierter Datentypen vom Typ Person, wie wir es in den beiden vorherigen Videos bereits gelernt haben. Jede dieser Personen hat eine Fallnummer, einen Vornamen, einen Nachnamen und gegebenenfalls noch Anmerkungen.
So weit, so gut. Jetzt soll jede Person in dieser Datenbank aber auch noch mit einem Status gekennzeichnet werden. Kein Problem: Da definierst du einfach eine Variable und setzt sie für tot auf 0, für lebend auf eins und für vermisst auf 2, oder?
So einfach ist das leider nicht, denn nicht jeder Ermittler oder Büroangestellte, der Zugriff auf diese Datenbank hat, weiß unbedingt, was diese Ziffern bedeuten. Natürlich könntest du jederzeit eine Funktion programmieren, die bei einer Ausgabe den richtigen Wert einsetzt, um diesem Problem aus dem Weg zu gehen, aber warum etwas komplizierter machen, als es ist?
Definition des Aufzählungstyps
Stattdessen nutzen wir genau in diesem Fall Aufzählungstypen. Ein solcher Typ definiert sich in unserem Fall so:
Damit haben wir nun standardmäßig der 0 dead, der 1 alive und der 2 missing zugewiesen, ohne eine einzige weitere Methode programmieren zu müssen. Jetzt können wir nämlich einfach eine Variable vom Typ enum status deklarieren und ihr einen unserer neu definierten Werte zuweisen:
Intern arbeitet unser Rechner immer noch mit Zahlen, aber für beide, den Programmierer und später den Benutzer wird die Handhabung um einiges erleichtert.
Zuweisung bestimmter Nummern an die Variablen
Du kannst aber nicht nur einfache Listen durchnummerieren. Entwickeln wir zum Beispiel ein Programm für die Feuerwehr, das Notfälle mit der dazugehörigen Abkürzung erfasst. Dann brauchst du lediglich bestimmte Nummern. Das lässt sich ganz leicht erreichen, indem du den Wert, dem dein Alias normalerweise zugewiesen werden würde, überschreibst. Dies sieht dann in etwa so aus:
Hier steht 6 für „standby“ und 11 für „radio test count“. Aber was passiert jetzt mit „verify location“? Da wir bei unserer Aufzählung durch das Überschreiben bereits bei 6 angekommen sind, wird „verify location“ einfach automatisch die nächste Zahl, also die 7 zugewiesen. Ziemlich nützlich, oder?
Besetzung einer Zahl mit mehreren Werten
Außerdem erlaubt der Aufzählungstyp auch die Besetzung einer Zahl mit mehreren Werten. Steht also Code 25 für „Manhole“ oder „Transformer Vault Fire“, kannst du problemlos beiden denselben Code zuweisen und danach normal weitermachen.
Noch einfacher und kürzer geht es, wenn du von vorneherein weißt, dass du nur eine Variable von diesem Typ benötigst. Dann kannst du nämlich den Spezial-Typen und die Variable in einer einzigen Zeile deklarieren.
Diese Schreibweise sollte dir bereits aus den beiden vorherigen Videos bekannt sein, denn sie erinnert stark an die Deklaration mittels „struct“.
Du siehst: Aufzählungstypen sind ziemlich praktisch um eine Reihe von Variablen durchzunummerieren um neu deklarierten Variablen später diese zuweisen zu können. Probier‘ es gleich mal aus!