Menu
CoddyTech

复习:交通信号灯

本课属于 Coddy Dart 学习旅程的“逻辑与流程控制”单元。第 62 课,共 65 课。

challenge icon

挑战

简单

创建一个全面的交通信号灯管理系统,展示你对枚举和 switch 语句的掌握。你的任务是构建一个能够处理多个交通信号灯并为驾驶员提供恰当操作建议的系统。

  1. 定义一个名为 TrafficLight 的枚举,包含三个值:red、yellow 和 green
  2. 创建一个名为 getDriverAction 的函数,该函数接收一个 TrafficLight 参数,并使用 switch 语句返回相应的操作字符串:
    • 对于 TrafficLight.red:返回 "Stop"
    • 对于 TrafficLight.yellow:返回 "Caution"
    • 对于 TrafficLight.green:返回 "Go"
  3. 创建一个名为 getWaitTime 的函数,该函数接收一个 TrafficLight 参数,并使用 switch 语句返回等待时间(秒):
    • 对于 TrafficLight.red:返回 30
    • 对于 TrafficLight.yellow:返回 3
    • 对于 TrafficLight.green:返回 25
  4. 创建三个变量来表示不同的交叉路口:
    • 将 intersection1 声明为 TrafficLight 类型,并设为 TrafficLight.red
    • 将 intersection2 声明为 TrafficLight 类型,并设为 TrafficLight.yellow
    • 将 intersection3 声明为 TrafficLight 类型,并设为 TrafficLight.green
  5. 对于每个交叉路口,按以下精确格式打印状态:
    • Intersection 1: Red light - Stop - Wait time: 30 seconds
    • Intersection 2: Yellow light - Caution - Wait time: 3 seconds
    • Intersection 3: Green light - Go - Wait time: 25 seconds
  6. 通过将 intersection1 更新为 TrafficLight.green,模拟交通信号灯切换
  7. 打印更新后的状态:Updated Intersection 1: Green light - Go - Wait time: 25 seconds
  8. 通过打印以下内容创建摘要:Traffic system managing 3 intersections successfully

你的程序应展示将枚举与 switch 语句结合起来的优势,从而创建一个类型安全、易于阅读的交通管理系统。switch 语句必须处理所有枚举值,并返回上面指定的确切字符串和数字。

亲手试试

import 'dart:io';

// TODO: 在这里定义你的 TrafficLight 枚举

// TODO: 在这里创建你的 getDriverAction 函数

// TODO: 在这里创建你的 getWaitTime 函数

void main() {
  // TODO: 在下方编写你的代码
  
  // 创建路口变量
  
  // 打印每个路口的状态
  
  // 更新 intersection1 并打印更新后的状态
  
  // 打印汇总信息
}

逻辑与流程控制中的所有课

自己练习: Dart 在线编译器