SS 2025
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
/* Informatik B - Sommersemester 2023
|
||||
Vorlesung am 28.04.2023
|
||||
Katharina Klost
|
||||
|
||||
Beispiele zu enums
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
|
||||
//Ein enum für Wochentage
|
||||
enum class Wochentag{
|
||||
Montag,
|
||||
Dienstag,
|
||||
Mittwoch,
|
||||
Donnerstag,
|
||||
Freitag,
|
||||
Samstag,
|
||||
Sonntag
|
||||
};
|
||||
|
||||
|
||||
//Ein enum für Farben
|
||||
enum class Farbe {rot, gruen, blau, orange};
|
||||
|
||||
// Ein enum für die Zustände von Ampeln
|
||||
enum class Ampel {gruen, gelb, rot, gelb_rot};
|
||||
|
||||
int main(){
|
||||
// der Name des enums muss immer angegeben werden, da es Felder mit
|
||||
// dem gleichen Namen in verschiedenen enums geben kann
|
||||
Ampel ampel1 = Ampel::gruen;
|
||||
//enums und switch-case sind eine beliebte Kombination
|
||||
switch(ampel1){
|
||||
case Ampel::gruen:
|
||||
std::cout << "Kann fahren" << std::endl;
|
||||
break;
|
||||
case Ampel::gelb:
|
||||
std::cout << "Achtung" << std::endl;
|
||||
break;
|
||||
case Ampel::rot:
|
||||
std::cout << "Stop" << std::endl;
|
||||
break;
|
||||
case Ampel::gelb_rot:
|
||||
std::cout << "Achtung" << std::endl;
|
||||
break;
|
||||
default:
|
||||
std::cout <<"Irgendwas anderes" << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
int number;
|
||||
std::cout << "Gebe einen Tag ein, (Montag=1,..., Sonntag =7)";
|
||||
std::cin >> number;
|
||||
// da enums intern mit Zahlen dargestellt werden, können Zahlen
|
||||
// explizit in eine enum umgewandelt werden
|
||||
Wochentag tag = static_cast<Wochentag>(number-1);
|
||||
|
||||
// werden enums verglichen gilt die Reihenfolge in der Definition
|
||||
if (tag >= Wochentag::Samstag){
|
||||
std::cout << "Es ist Wochenende :)" << std::endl;
|
||||
}
|
||||
else{
|
||||
std::cout << "Es ist ein Arbeitstag :(" << std::endl;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user