Dart Switch语句
Switch语句是一种控制结构,它允许根据变量的值执行不同的代码块。在Dart中,switch语句可以用于处理多种情况,使得代码更加简洁和易于理解。
Switch语句的基本结构
// javascriptcn.com 代码示例 void main() { int number = 3; switch (number) { case 1: print("数字是1"); break; case 2: print("数字是2"); break; case 3: print("数字是3"); break; default: print("数字不是1, 2, 或者3"); } }
在上述代码中,number
变量被用作switch表达式的值。根据number
的值,相应的case分支会被执行。如果number
等于1,则输出“数字是1”;如果number
等于2,则输出“数字是2”;如果number
等于3,则输出“数字是3”。如果没有匹配的case,则会执行default分支,输出“数字不是1, 2, 或者3”。
多条件分支
Switch语句不仅可以处理单个条件,还可以处理多个条件。这可以通过在case后面添加多个值来实现:
// javascriptcn.com 代码示例 void main() { int number = 3; switch (number) { case 1: case 2: case 3: print("数字是1, 2, 或者3"); break; default: print("数字不是1, 2, 或者3"); } }
在这个例子中,如果number
等于1、2或3中的任何一个,都会执行同一个分支。如果number
不等于这些值,则会执行default分支。
匹配多个条件
Dart还支持使用多个条件进行匹配,这可以通过在case后面添加多个值来实现。例如:
// javascriptcn.com 代码示例 void main() { String dayOfWeek = "星期一"; switch (dayOfWeek) { case "星期一": case "星期三": case "星期五": print("今天是工作日"); break; case "星期六": case "星期日": print("今天是周末"); break; default: print("未知的日期"); } }
在这个例子中,如果dayOfWeek
等于"星期一"、"星期三"或"星期五"中的任何一个,都会执行第一个分支;如果等于"星期六"或"星期日"中的任何一个,都会执行第二个分支;否则,将执行default分支。
使用表达式进行匹配
除了直接比较变量的值外,Dart还允许在case后面使用表达式进行匹配。例如:
// javascriptcn.com 代码示例 void main() { int number = 5; switch (number % 2) { case 0: print("数字是偶数"); break; case 1: print("数字是奇数"); break; default: print("未知的数字"); } }
在这个例子中,我们使用了number % 2
作为switch表达式。如果结果为0,则说明number
是偶数;如果结果为1,则说明number
是奇数。
包含其他类型的case
除了整型和字符串之外,Dart还支持其他类型的case。例如,你可以使用枚举类型进行匹配:
// javascriptcn.com 代码示例 enum Color { 红色, 绿色, 蓝色 } void main() { Color color = Color.绿色; switch (color) { case Color.红色: print("颜色是红色"); break; case Color.绿色: print("颜色是绿色"); break; case Color.蓝色: print("颜色是蓝色"); break; } }
在这个例子中,我们定义了一个枚举类型Color
,然后使用它来进行case匹配。如果color
是红色,则输出“颜色是红色”;如果是绿色,则输出“颜色是绿色”;如果是蓝色,则输出“颜色是蓝色”。
包含表达式的结果
在某些情况下,你可能希望根据表达式的结果来决定执行哪个分支。这时可以使用when
关键字来实现:
// javascriptcn.com 代码示例 void main() { int number = 10; switch (number) { case var n when n > 0 && n < 10: print("数字在0到10之间"); break; case var n when n >= 10 && n < 20: print("数字在10到20之间"); break; default: print("数字不在0到20之间"); } }
在这个例子中,我们使用了when
关键字来定义一个表达式,这个表达式决定了哪个case分支被执行。如果number
大于0且小于10,则执行第一个分支;如果number
大于等于10且小于20,则执行第二个分支;否则,执行default分支。
结束语
通过本章的学习,你应该已经掌握了Dart中switch语句的基本用法和一些高级技巧。掌握switch语句能够帮助你在处理多种情况时编写更简洁和高效的代码。在实际编程过程中,灵活运用switch语句可以使你的代码更具可读性和可维护性。