復習 - 信号機
CoddyのDartジャーニー「論理とフロー」セクションの一部 — レッスン 62/65。
チャレンジ
簡単enumとswitch文の習熟度を証明する、包括的な信号機管理システムを作成してください。あなたのタスクは、複数の信号機を処理し、ドライバーに適切なアクションを提供できるシステムを構築することです。
red、yellow、greenの3つの値を持つTrafficLightという名前のenumを定義します。TrafficLightパラメータを受け取り、switch文を使用して適切なアクション文字列を返すgetDriverActionという関数を作成します。TrafficLight.redの場合:"Stop"を返しますTrafficLight.yellowの場合:"Caution"を返しますTrafficLight.greenの場合:"Go"を返します
TrafficLightパラメータを受け取り、switch文を使用して待ち時間を秒単位で返すgetWaitTimeという関数を作成します。TrafficLight.redの場合:30を返しますTrafficLight.yellowの場合:3を返しますTrafficLight.greenの場合:25を返します
- 異なる交差点を表す3つの変数を作成します。
TrafficLight型のintersection1をTrafficLight.redに設定しますTrafficLight.yellowに設定されたTrafficLight型のintersection2TrafficLight.greenに設定されたTrafficLight型のintersection3
- 各交差点について、次の正確な形式でステータスを出力します。
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
プログラムは、enumとswitch文を組み合わせて、型安全で読みやすい交通管理システムを作成する利点を示す必要があります。switch文はすべてのenum値を処理し、上記で指定された正確な文字列と数値を返す必要があります。
自分で試してみよう
import 'dart:io';
// TODO: ここでTrafficLight列挙型を定義してください
// TODO: ここでgetDriverAction関数を作成してください
// TODO: ここでgetWaitTime関数を作成してください
void main() {
// TODO: 以下にコードを記述してください
// 交差点の変数を作成します
// 各交差点の状態を表示します
// intersection1を更新し、更新された状態を表示します
// 要約を表示します
}論理とフローのすべてのレッスン
1リスト操作の応用
リストのプロパティ: first と lastリストの状態: isEmpty と isNotEmptyリストの反転リストへの追加: insertリストの削除: removeWhereリスト内の検索: indexOfリストのソートリストのシャッフルまとめ - リストオーガナイザー