Zusammenfassung – Ampel
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 62 von 65.
Aufgabe
EinfachErstellen Sie ein umfassendes Ampelverwaltungssystem, das Ihre Beherrschung von Enums und Switch-Anweisungen demonstriert. Ihre Aufgabe ist es, ein System zu entwickeln, das mehrere Ampeln verwalten kann und entsprechende Aktionen für Fahrer bereitstellt.
- Definieren Sie ein Enum namens
TrafficLightmit drei Werten:red,yellowundgreen - Erstellen Sie eine Funktion namens
getDriverAction, die einenTrafficLight-Parameter entgegennimmt und die entsprechende Aktions-Zeichenfolge mithilfe einer Switch-Anweisung zurückgibt:- Für
TrafficLight.red: geben Sie"Stop"zurück - Für
TrafficLight.yellow: geben Sie"Caution"zurück - Für
TrafficLight.green: geben Sie"Go"zurück
- Für
- Erstellen Sie eine Funktion namens
getWaitTime, die einenTrafficLight-Parameter entgegennimmt und die Wartezeit in Sekunden mithilfe einer Switch-Anweisung zurückgibt:- Für
TrafficLight.red: geben Sie30zurück - Für
TrafficLight.yellow: geben Sie3zurück - Für
TrafficLight.green: geben Sie25zurück
- Für
- Erstellen Sie drei Variablen, um verschiedene Kreuzungen darzustellen:
intersection1vom TypTrafficLight, gesetzt aufTrafficLight.redintersection2vom TypTrafficLight, gesetzt aufTrafficLight.yellowintersection3vom TypTrafficLight, gesetzt aufTrafficLight.green
- Drucken Sie für jede Kreuzung den Status in genau diesem 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
- Simulieren Sie eine Änderung der Ampelsequenz, indem Sie
intersection1aufTrafficLight.greenaktualisieren - Drucken Sie den aktualisierten Status aus:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - Erstellen Sie eine Zusammenfassung, indem Sie Folgendes drucken:
Traffic system managing 3 intersections successfully
Ihr Programm sollte die Leistungsfähigkeit der Kombination von Enums mit Switch-Anweisungen demonstrieren, um ein typsicheres, lesbares Verkehrsverwaltungssystem zu erstellen. Die Switch-Anweisungen müssen alle Enum-Werte verarbeiten und genau die oben angegebenen 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