“我的Go+语言初体验” | 征文活动进行中…
Go+ 语言中提供多路分支条件语句 switch, 用于在不同条件下执行不同动作。
使用 if-else 嵌套结构也可以实现多路分支条件结构,但程序冗长,可读性差。
本文的例程按照 Go+ 进行了优化和测试,Go+ 的编程风格更加简洁。
switch 是多路分支条件语句, 用于基于不同条件执行不同动作。
使用 if-else 嵌套结构也可以实现多路分支条件结构,但程序冗长,可读性差。Go+ 提供了更简练的 Switch 多路分支条件语句,将一个表达式的求值结果与可能的值的列表进行匹配,并根据匹配结果执行相应的代码。
switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加 break。
Go+ 编程语言中 switch 语句的语法如下:
switch var {
case var1:
statement(s);
case var2:
statement(s);
// 可以定义任意个数的 case
default: // Optional
statement(s);
}
变量 var 可以是任何类型,var1, var2 可以是与 var 相同类型的常量、变量或表达式。
switch 语句中可以有表达式,也可以省略。如果 switch 语句中没有表达式,则默认为 “true”,并对每个 case 表达式求值,执行结果为 “true” 的 case。
// Example 1: a switch statement with expression
dayOfTheWeek := 0
switch dayOfTheWeek {
case 1:
println "Monday"
case 2:
println "Tuesday"
case 3:
println "Wednesday"
case 4:
println "Thursday"
case 5:
println "Friday"
case 6:
println "Saturday"
case 0:
println "Sunday"
}
/* Running results:
Sunday
*/
// Example 2: a switch statement without expression
var num int = 80
switch {
//switch without expression
case num < 50:
printf "%d < 50\n", num
case num < 100:
printf "%d < 100\n", num
case num < 200:
printf "%d < 200", num
}
/* Running results:
80 < 100
*/
程序说明:
在 Switch 语句中,关键字 default 表示:当没有其他 case 匹配时,将执行 default 语句。
显然,多个 case 和 default 只能执行一个。
// Example 3: a switch example with default case
// When no other case matches, the default statement is executed.
dayOfTheWeek := 2
switch dayOfTheWeek {
case 0:
println "Today is Sunday."
case 6:
println "Today is Saturday."
default:
println "Today is a weekday."
}
/* Running results:
Today is a weekday.
*/
程序说明:
dayOfTheWeek := 2,与 switch 中的 case 0,case 6 都不匹配,执行 default 语句。
在 Go+ 语言中 case 是一个独立的代码块,默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case。
为了兼容一些移植代码,如果需要执行后面的 case,可以使用关键字 fallthrough 来实现这一功能。
fallthrough 必须是 case 语句块中的最后一条语句。如果它出现在语句块的中间,编译器将会报错。
新编写的代码,不建议使用 fallthrough。
// Example 4: a switch example with fallthrough
var num int = 80
println "Switch with fallthrough:"
switch {
case num < 50:
printf "%d < 50\n", num
fallthrough
case num < 100:
printf "%d < 100\n", num
fallthrough
case num < 200:
printf "%d < 200", num
}
/* Running results:
Switch with fallthrough:
80 < 100
80 < 200
*/
程序说明:
在 Go+ 语言中,一个 case 分支中可以包含多个值或多个表达式,每个条件之间用逗号分隔。
多个值或表达式之间相当于 “与” 的关系,只要匹配其中的一个条件,就执行该 case 的语句。
// Example 5: a switch example of multiple expressions in case
var letter string = "u"
switch letter {
case "a", "e", "i", "o", "u":
printf "%s is a vowel.", letter
default:
printf "%s isn't a vowel.", letter
}
/* Running results:
u is a vowel.
*/
【本节完】
版权声明:
原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/121722748)
Copyright 2021 youcans, XUPT
Crated:2021-12-04
欢迎关注『我的Go+语言初体验』系列,持续更新中…
我的Go+语言初体验——(1)超详细安装教程
我的Go+语言初体验——(2) IDE 详细安装教程
我的Go+语言初体验——(3)Go+ 数据类型
我的Go+语言初体验——(4)零基础学习 Go+ 爬虫
我的Go+语言初体验——(5)Go+ 基本语法之 Switch
“我的Go+语言初体验” | 征文活动进行中…