1个案例彻底弄懂Go语⾔中的switchcase语句(Golang经典编程案例)
注意:
1. switch/case 后是⼀个表达式(即:常量,变量,⼀个有返回的函数都可以);
2. case后的各个表达式的值的数据类型,必须和switch的表达式数据类型⼀致;
3. case后⾯可以带多个表达式,使⽤逗号间隔;
4. case后⾯的表达式如果是常量值,则要求不能重复;
5. case后⾯不需要带break,程序匹配到⼀个case后就会执⾏对应的代码块,然后退出switch,如果⼀个都匹配不到,则执⾏default;
6. default语句不是必须的;
7. switch 后也可以不带表达式,类似 if --else分⽀来使⽤;
8. switch 后也可以直接声明⼀个变量,分号结束,不过不推荐。
9. switch穿透:如果在case语句增加fallthrough,则会继续执⾏下⼀个case,默认只穿透⼀层。
10. type-switch :来判断interface变量中实际指向的变量类型,⽐如:
package main
import(
"fmt"
)
func main(){
var x interface{}
var y =10
x=y
switch i := x.(type){
case nil:
fmt.Printf("x的类型是:%T",i)
case int:
fmt.Printf("x是 int 类型")
case float64:
fmt.Printf("x是 float64 类型")
case func(int)float64:
fmt.Printf("x是func(int)类型")
case bool,string:
switch case判断字符串
fmt.Printf("x是bool或者string类型")
default:
fmt.Printf("未知型")
}
}
执⾏结果如下图:
案例:根据⽤户输⼊的⽉份,打印该⽉份所属的季节。
package main
import(
"fmt"
)
func main(){
//根据⽤户输⼊的⽉份,打印该⽉份所属的季节
var month byte
fmt.Print("请输⼊⽉份:")
fmt.Scanln(&month)
switch month {
case3,4,5:
fmt.Println("春天")
case6,7,8:
fmt.Println("夏天")
case9,10,11:
fmt.Println("秋天")
case12,1,2:
fmt.Println("冬天")
default:
fmt.Println("输⼊有误...")
}
}
执⾏结果如下图所⽰:
switch和if的选择:
1. 如果判断的具体数值不多,⽽且符合整数,浮点数,字符,字符串这⼏种类型。建议使⽤switch语句,简洁⾼效。
2. 其他情况:对区间判断和结果为bool类型的判断,使⽤if,if的使⽤范围更⼴。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。