Récapitulatif - Feu de signalisation
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 62 sur 65.
Défi
FacileCréez un système complet de gestion des feux de signalisation qui démontre votre maîtrise des enums et des instructions switch. Votre tâche consiste à construire un système capable de gérer plusieurs feux de signalisation et de fournir les actions appropriées pour les conducteurs.
- Définissez un enum appelé
TrafficLightavec trois valeurs :red,yellowetgreen - Créez une fonction appelée
getDriverActionqui prend un paramètreTrafficLightet retourne la chaîne d'action appropriée à l'aide d'une instruction switch :- Pour
TrafficLight.red: retournez"Stop" - Pour
TrafficLight.yellow: retournez"Caution" - Pour
TrafficLight.green: retournez"Go"
- Pour
- Créez une fonction appelée
getWaitTimequi prend un paramètreTrafficLightet retourne le temps d'attente en secondes à l'aide d'une instruction switch :- Pour
TrafficLight.red: retournez30 - Pour
TrafficLight.yellow: retournez3 - Pour
TrafficLight.green: retournez25
- Pour
- Créez trois variables pour représenter différentes intersections :
intersection1de typeTrafficLightréglée surTrafficLight.redintersection2de typeTrafficLightréglée surTrafficLight.yellowintersection3de typeTrafficLightréglée surTrafficLight.green
- Pour chaque intersection, affichez le statut dans ce format exact :
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
- Simulez un changement de séquence de feux de signalisation en mettant à jour
intersection1versTrafficLight.green - Affichez le statut mis à jour :
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - Créez un résumé en affichant :
Traffic system managing 3 intersections successfully
Votre programme doit démontrer la puissance de la combinaison des enums avec les instructions switch pour créer un système de gestion du trafic lisible et sécurisé au niveau des types. Les instructions switch doivent gérer toutes les valeurs de l'enum et retourner exactement les chaînes et les nombres spécifiés ci-dessus.
Essayez vous-même
import 'dart:io';
// TODO: Définissez votre enum TrafficLight ici
// TODO: Créez votre fonction getDriverAction ici
// TODO: Créez votre fonction getWaitTime ici
void main() {
// TODO: Écrivez votre code ci-dessous
// Créer les variables d'intersection
// Afficher le statut de chaque intersection
// Mettre à jour intersection1 et afficher le statut mis à jour
// Afficher le résumé
}Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques6Gestion de base des erreurs
Que sont les exceptions ?Le bloc 'try-catch'Intercepter des exceptions avec 'on'Le bloc 'finally'Lever une exceptionRécapitulatif - Division sécurisée9Énumérations (Enums)
Qu'est-ce que les Enums ?Définir un Enum simpleUtiliser des Enums dans des variablesLes Enums dans les instructions 'switch'Récapitulatif - Feu de signalisation