复习:交通信号灯
本课属于 Coddy Dart 学习旅程的“逻辑与流程控制”单元。第 62 课,共 65 课。
挑战
简单创建一个全面的交通信号灯管理系统,展示你对枚举和 switch 语句的掌握。你的任务是构建一个能够处理多个交通信号灯并为驾驶员提供恰当操作建议的系统。
- 定义一个名为
TrafficLight的枚举,包含三个值:red、yellow和green - 创建一个名为
getDriverAction的函数,该函数接收一个TrafficLight参数,并使用 switch 语句返回相应的操作字符串:- 对于
TrafficLight.red:返回"Stop" - 对于
TrafficLight.yellow:返回"Caution" - 对于
TrafficLight.green:返回"Go"
- 对于
- 创建一个名为
getWaitTime的函数,该函数接收一个TrafficLight参数,并使用 switch 语句返回等待时间(秒):- 对于
TrafficLight.red:返回30 - 对于
TrafficLight.yellow:返回3 - 对于
TrafficLight.green:返回25
- 对于
- 创建三个变量来表示不同的交叉路口:
- 将
intersection1声明为TrafficLight类型,并设为TrafficLight.red - 将
intersection2声明为TrafficLight类型,并设为TrafficLight.yellow - 将
intersection3声明为TrafficLight类型,并设为TrafficLight.green
- 将
- 对于每个交叉路口,按以下精确格式打印状态:
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
- 通过将
intersection1更新为TrafficLight.green,模拟交通信号灯切换 - 打印更新后的状态:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - 通过打印以下内容创建摘要:
Traffic system managing 3 intersections successfully
你的程序应展示将枚举与 switch 语句结合起来的优势,从而创建一个类型安全、易于阅读的交通管理系统。switch 语句必须处理所有枚举值,并返回上面指定的确切字符串和数字。
亲手试试
import 'dart:io';
// TODO: 在这里定义你的 TrafficLight 枚举
// TODO: 在这里创建你的 getDriverAction 函数
// TODO: 在这里创建你的 getWaitTime 函数
void main() {
// TODO: 在下方编写你的代码
// 创建路口变量
// 打印每个路口的状态
// 更新 intersection1 并打印更新后的状态
// 打印汇总信息
}逻辑与流程控制中的所有课
自己练习: Dart 在线编译器