GO语言条件控制
2018-10-07 本文已影响0人
超级皮波9
条件控制语句
选择结构 if
- 三种结构
package main
func main() {
//第一种
if 初始化表达式; 条件表达式 {
语句1
}
//第二种格式
if 初始化表达式; 条件表达式 {
语句1
}else{
语句2
}
//第三种格式
if 初始化表达式; 条件表达式 {
语句1
}else if 初始化表达式; 条件表达式 {
语句2
}else{
语句3
}
}
- 实例
package main
import "fmt"
func main() {
//判断是否成年
if num := 5; num<18{
fmt.Println("未成年")
}
}
package main
import "fmt"
func main() {
//判断是否成年
if num := 20; num<18{
fmt.Println("未成年")
}else{
fmt.Println("成年人")
}
}
- 注意点
- 条件表达式返回的是布尔类型
- if 后面的大括号( {} )不能省略. 条件表达式的括号省略()
- 可以在条件表达式前面增加初始化表达式
- 每个条件表达式前面都可以添加初始化表达式(会采用就近原则取值)
- 如果初始化表达式定义在if里面 那么变量就只能在if结构里面使用,定义的变量后面的结构都可以使用
[25]
switch 语句
- 格式
package main
func main() {
// 第一种
switch 值 {
case 1:
语句1
case 2:
语句2
case 3:
语句3
default:
语句4
}
//第二种
switch 初始化表达式;值 {
case 1:
语句1
case 2:
语句2
case 3:
语句3
default:
语句4
}
}
- 注意点
- GO语言中的switch 可以传入小数
- GO语言中的switch 可以添加初始化表达式
- GO语言中默认不用写break, 不会穿透,如果需要穿透,需要手动添加一个fallthrough
- Go语言中 default 可以不用写 也可以写到其他位置,系统都会最后执行
- GO语言中 case 后面可以直接定义变量,不用加大括号" {} "
循环控制语句
- GO语言中只有for 循环一种
循环结构for
package main
func main() {
for 初始化表达式;条件表达式;增量表达式 {
循环语句
}
}
- 最简单的死循环
for { }
- 实例
package main
import "fmt"
func main() {
for i:=0;i<10;i++{
fmt.Println("我是go 语言的for")
}
}
- 注意点
- 条件表达式只能返回布尔值
- 不能省略" {} "
四大跳转
break
- GO语言中break 使用在 switch 和 循环语句 中
但是Go语言中switch中默认就不会穿透,所以break 也就可以不用写 - 注意点
- GO语言中的break可以跳转到指定标签
- 标签只能定义在前面,并且跳转到标签之后循环不会被再次执行了
- 标签和循环之间不能再编写其他语句
package main
import "fmt"
func main() {
br:
for i:=0;i<3;i++ {
fmt.Println("break跳转")
if i == 2 {
break br
}
}// for end
} //main end
continue
-
Go语言中continue 和C语言一样只能用于循环结构中
-
Go语言中的continue 可以跳转到指定标签
-
注意点
- 如果跳转的是单层循环,那么和不指定是一样的所以没有意义
- 如果跳转的多层循环,那么会结束当前内循环 跳转到下一次的外循环
- 跳转的标签 只能写在要跳转循环的前面
- 标签和要跳转的循环之间不能再有别的语句
package main
import "fmt"
func main() {
con:
for i:=1;i<=5;i++{
fmt.Println(i)
for j:=1;j<=10;j++{
if j%2 == 0{
continue con // 只要j=2满足条件就会跳出
}
fmt.Println("*****",j) // 所以j 永远等于1
}
}
} //main end