go基础-流程控制
# 流程控制
1. 条件语句
if condition {
// 处理一些东西
}
// if else
if condition { // 如果condition为真
// condition条件满足为真执行这里
} else { // 否则
// 当condition条件不满足为假的时候执行这里
}
if condition { // 先判断condition是否为真
} else if condition1 { // 如果condition 不为真,判断condition1是否为真
} else { // 当condition和condition1都不为真的时候执行这里
}
举个例子
score := 80
if score > 90 {
// 优秀
} else if score <= 90 && score >= 60 {
// 及格
} else {
// 不及格
}
if score1 := 100; score1 > 90 { // 变量初始化语句可以写在if后边,用;隔开
// 优秀
}
- 条件语句不需要使用圆括号将条件包含起来
()
;- 无论语句体内有几条语句,花括号
{}
都是必须存在的;- 左花括号
{
必须与if
或者else
处于同一行;
2. 条件分支
switch var1 {
case val1:
// break go语言不需要这个玩意
// fallthrough 如果加上这个语句的话,那么条件val2里的也会执行
case val2:
...
default:
...
}
- 和条件语句一样,左花括号
{
必须与switch
处于同一行;- 单个
case
中,可以出现多个结果选项(通过逗号分隔);- 与其它语言不同,Go 语言不需要用
break
来明确退出一个case
;- 只有在
case
中明确添加fallthrough
关键字,才会继续执行紧跟的下一个case
;
3. 循环语句
基本使用
for i := 1; i <= 100; i++ {
// 执行一些什么东西
// continue 跳过本次循环,循环体从这里往下的代码不在执行
// break 退出循环
}
无限循环
for {
// 执行一些东西
// 可以使用break语句退出循环
}
for range
a := []int(1,2,3,4)
for k, v := range a {
// k 索引
// v 值
}
for _,v :range a { // 忽略索引
}
基于条件判断进行循环
i := 0
for i < 100 {
// 当i小于100时执行
}
- 和条件语句、分支语句一样,左花括号
{
必须与for
处于同一行;- 不支持
whie
和do-while
结构的循环语句;- 可以通过
for-range
结构对可迭代集合进行遍历;- 支持基于条件判断进行循环迭代;
- 允许在循环条件中定义和初始化变量,且支持多重赋值;