条件语句

if 语句

用法

if 条件 {
     //当条件为真时执行
}

if 条件 {
     //当条件为真时执行
} else {
     //当条件为假时执行
}

if 条件 {
     //当条件为真时执行
} else if 条件2 {
     //当条件2为真时执行
} else {
     //全部不满足时执行
}

特点

  1. if后的条件不需要用小括号括起来
  2. {必须放在行末,与if或if else放在一行
  3. if后可带一个简单的初始化语句,并以分号分割,所声明变量的作用域为整个if语句块(包括后面的分支)
  4. Go语言没有条件运算符
  5. 遇到return后直接返回,遇到break则跳过break下方的if语句块

编程哲学

  1. 尽量减少条件语句的复杂度,如果条件语句太多,太复杂,则建议放到函数里封装起来
  2. 尽量减少if语句的嵌套层次,通过重构代码来使代码变得扁平,便于阅读

switch 语句

用法

switch {
     case 条件:
         //执行语句
     case 条件:
         //执行语句
     default:
         //所有条件不满足时执行
}

特点

  1. 同if一样,switch后可带一个简单的初始化语句
  2. switch后的表达式也是可选的,如果没有表达式,则case的子句是一个布尔表达式,而不是一个值,就像多重if...else...语句
  3. switch可以任意支持相等比较运算的类型变量
  4. 通过fallthough来强制执行下一个case子句(不判断下一case分支的条件)
  5. switch支持default语句,当所有条件不支持时执行default中的语句,default的位置不影响switch的判断逻辑
  6. switch和.(type)结合可以进行类型的查询(这个以后会学到)

循环语句

for 语句

Go语言只有一个循环语句——for

用法

//1.类似C中的for语句
for init;condition;post { }
//2.类似C中的while语句
for condition { }
//3.死循环
for { }
//for也可以对数组,切片,字符串,map和通道的访问

标签与跳转

Go使用标签来标识一个语句的位置,用于goto,break,continue语句的跳转。

标签

Lable: Statement

goto

goto用来跳转到函数内指定的标签

goto Lable

特点

  1. 只能在函数内跳转
  2. goto不能跳过内部变量声明语句
  3. goto只能跳转到同级作用域或上层作用域内,不能跳转到内部作用域

break

break用于函数内跳出for,switch,select语句的执行,有两种使用格式:

  1. 单独使用,用于跳出break当前所在的for,switch,select语句的执行
  2. 和标签一起使用,用于跳出标签所标识的for,switch,select语句的执行,可用于跳出多重循环,但标签与break必须在同一个函数内

continue

continue用于跳出for循环的本次迭代,跳到for循环下一次迭代的post语句执行,也有两种使用格式:

  1. 单独使用,用于跳出continue当前所在的for循环的本次迭代
  2. 和标签一起使用,用于跳出标签所标识的for语句的本次迭代,但标签与continue必须在同一个函数内

标签: Golang

添加新评论