| // Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:expect/expect.dart'; |
| |
| enum Color { red, green, blue } |
| |
| enum Taste { sweet, sour, salty, bitter, umami } |
| |
| void main() { |
| Expect.equals(getValue(Taste.sweet, Color.blue), 1); |
| Expect.equals(getValue(Taste.bitter, Color.blue), 1); |
| Expect.equals(getValue(Taste.salty, Color.red), 2); |
| Expect.equals(getValue(Taste.salty, Color.blue), 4); |
| Expect.equals(getValue(Taste.salty, Color.green), 3); |
| Expect.equals(getValue(Taste.umami, Color.red), 4); |
| } |
| |
| int getValue(Taste taste, Color color) { |
| switch (taste) { |
| case Taste.sweet: |
| case Taste.sour: |
| case Taste.bitter: |
| return 1; |
| case Taste.salty: |
| switch (color) { |
| case Color.red: |
| return 2; |
| case Color.blue: |
| continue LABEL; |
| case Color.green: |
| return 3; |
| } |
| throw Exception('Invalid state.'); |
| LABEL: |
| case Taste.umami: |
| return 4; |
| } |
| } |