Go 系列教程 —— 10. switch 语句

vicever ·
按照楼上的说法我做了一下测试,结果跟楼上的说法不一致,但是百度出来的测试项目居然是不会判断case是否为true ```golang package main import "fmt" func number() int{ num := 15 * 5 return num } func main() { switch num := number();{ case num < 50: fmt.Printf("%d is lesser than 50\n",num) fallthrough case num < 70: fmt.Printf("%d is lesser than 70\n",num) fallthrough case num < 100: fmt.Printf("%d is lesser than 100\n",num) fallthrough case num < 200: fmt.Printf("%d is lesser than 200\n",num) } } ``` 结果: ```txt 75 is lesser than 100 75 is lesser than 200 ``` 百度的案例: ```golang package main import "fmt" func main() { switch { case false: fmt.Println("1、case 条件语句为 false") fallthrough case true: fmt.Println("2、case 条件语句为 true") fallthrough case false: fmt.Println("3、case 条件语句为 false") fallthrough case true: fmt.Println("4、case 条件语句为 true") case false: fmt.Println("5、case 条件语句为 false") fallthrough default: fmt.Println("6、默认 case") } } ``` 结果: ```txt 2、case 条件语句为 true 3、case 条件语句为 false 4、case 条件语句为 true ``` 一脸懵逼,求解!!!!
#2
更多评论
这里要注意下fallthrough,上文没有讲到的,** 使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。** 注意,注意,再注意,敲黑板了!!!重点!!! ** 如果 case 带有 fallthrough,程序会继续执行下一条 case,且它不会去判断下一个 case 的表达式是否为 true。**
#1
得先满足一个case后,加了fallthrough,后面的case就不判断了。
#3