Zusammenfassung – Ampel
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 62 von 65.
Aufgabe
EinfachErstelle ein umfassendes Verkehrsampel-Managementsystem, das deine Beherrschung von Enums und switch-Anweisungen demonstriert. Deine Aufgabe besteht darin, ein System zu entwickeln, das mehrere Ampeln verwalten und Fahrern geeignete Aktionen bereitstellen kann.
- Definiere ein Enum namens
TrafficLightmit drei Werten:red,yellowundgreen - Erstelle eine Funktion namens
getDriverAction, die einenTrafficLight-Parameter übernimmt und mithilfe einer switch-Anweisung die entsprechende Aktionszeichenfolge zurückgibt:- Für
TrafficLight.red: gib"Stop"zurück - Für
TrafficLight.yellow: gib"Caution"zurück - Für
TrafficLight.green: gib"Go"zurück
- Für
- Erstelle eine Funktion namens
getWaitTime, die einenTrafficLight-Parameter übernimmt und mithilfe einer switch-Anweisung die Wartezeit in Sekunden zurückgibt:- Für
TrafficLight.red: gib30zurück - Für
TrafficLight.yellow: gib3zurück - Für
TrafficLight.green: gib25zurück
- Für
- Erstelle drei Variablen, die verschiedene Kreuzungen darstellen:
intersection1vom TypTrafficLight, gesetzt aufTrafficLight.redintersection2vom TypTrafficLight, gesetzt aufTrafficLight.yellowintersection3vom TypTrafficLight, gesetzt aufTrafficLight.green
- Gib für jede Kreuzung den Status in diesem exakten Format aus:
Intersection 1: Red light - Stop - Wait time: 30 secondsIntersection 2: Yellow light - Caution - Wait time: 3 secondsIntersection 3: Green light - Go - Wait time: 25 seconds
- Simuliere eine Änderung der Ampelsequenz, indem du
intersection1aufTrafficLight.greenaktualisierst - Gib den aktualisierten Status aus:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - Erstelle eine Zusammenfassung durch die Ausgabe von:
Traffic system managing 3 intersections successfully
Dein Programm sollte die Leistungsfähigkeit der Kombination von Enums und switch-Anweisungen demonstrieren, um ein typsicheres und übersichtliches Verkehrsmanagementsystem zu erstellen. Die switch-Anweisungen müssen alle Enum-Werte behandeln und die oben angegebenen exakten Zeichenfolgen und Zahlen zurückgeben.
Probier es selbst
import 'dart:io';
// TODO: Definiere hier dein TrafficLight-Enum
// TODO: Erstelle hier deine getDriverAction-Funktion
// TODO: Erstelle hier deine getWaitTime-Funktion
void main() {
// TODO: Schreibe deinen Code unten
// Erstelle Kreuzungsvariablen
// Status für jede Kreuzung ausgeben
// Kreuzung1 aktualisieren und aktualisierten Status ausgeben
// Zusammenfassung ausgeben
}Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste6Grundlagen der Fehlerbehandlung
Was sind Exceptions?Der 'try-catch'-BlockExceptions mit 'on' abfangenDer 'finally'-BlockEine Exception auslösenRückblick - Sichere Division9Enumerations (Enums)
Was sind Enums?Einfache Enums definierenEnums in Variablen verwendenEnums in 'switch'-AnweisungenZusammenfassung – AmpelÜbe selbstständig: Online-Dart-Compiler