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 处于同一行;
  • 不支持 whiedo-while 结构的循环语句;
  • 可以通过 for-range 结构对可迭代集合进行遍历;
  • 支持基于条件判断进行循环迭代;
  • 允许在循环条件中定义和初始化变量,且支持多重赋值;