Go语言学习之——switch
【Go语言学习之——switch】根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:
switch i {
case 0:
fmt.Printf("0")
case 1:
fmt.Printf("1")
case 2:
fallthrough
case 3:
fmt.Printf("3")
case 4, 5, 6:
fmt.Printf("4, 5, 6")
default:
fmt.Printf("Default")
}
switch后面可以没有表达式
package mainimport (
"io/ioutil"
"fmt"
)func grade(score int) string{
var g stringswitch {
case score < 0 || score > 100:
panic( fmt.Sprintf("Wrong Score:%d", score) ) //panic会中断程序,它的输入是字符串,fmt.Sprintf的作用的是拼接生成一个字符串,但不会打印出来。
case score < 60:
g = "F"
case score < 70:
g = "D"
case score < 80:
g = "C"
case score < 90:
g = "B"
case score <= 100:
g = "A"
//default:
//panic( fmt.Sprintf("Wrong Score:%d", score) )
}return g
}func main() {
const filename = "test.txt"if contents, err := ioutil.ReadFile(filename);
err != nil{
fmt.Println(err)
}else{
fmt.Printf("%s\n", contents)
}fmt.Println(
grade(0),
grade(30),
grade(66),
grade(76),
grade(89),
grade(90),
grade(100),
grade( 103 ), //注意这里有个逗号
//output:panic: Wrong Score:103,因为panic会中断,整个fmt.Println被中断,所以前面的几个grade函数的结果不会打印,但是并不影响if else里面的打印,如果几个println是拆开写的,前面的grade的结果就会打印出来。
)
}
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- python学习之|python学习之 实现QQ自动发送消息
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议