暑假青训营——GO语言入门——基础语法(下)| 青训营

105 阅读2分钟

5.条件语句

if else 语句

在 go 中,if else 写法和 C/C++ 类似,不同点在于 go 语言中,if 后面没有括号。第二个不同点在于if 后面必须接一个大括号,你无法像 C/C++ 那样,直接把 if 里面的语句和 if 写在同一行。

if a > 1 {
   fmt.Println("a 大于 1")
}

只有当a > 1为 true 时执行该语句

if a > 1 { 
      fmt.Println("a 大于 1") //1
} else { 
      fmt.Println("a 不大于 1") } //2

当a > 1为 true 时执行该语句1,false时执行语句2

if a := 9; a < 2 {
    fmt.Println(a, "比2小哦")
} else if a < 8 {
    fmt.Println(a, "大于2但不小于8哦")
} else {
    fmt.Println(a, "是这里了")
}

这个条件语句是一个复合条件语句, a := 9将a初始化为9。这个初始化语句在条件判断前被执行,并且 num 的作用域仅限于这个if-else-if语句块。

switch

switch是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较,并根据匹配执行代码块。switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。 switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加breakswitch后的变量不需加括号。

num := 2 //局部变量
switch num {
case 1:
    fmt.Println("One")
case 2:
    fmt.Println("Two")
default:
    fmt.Println("Other")
}
switch {
case num == "1":
    fmt.Printf("优秀!\n")
case num == "2", num == "3":
    fmt.Printf("良好\n")
case num == "4":
    fmt.Printf("及格\n")
case num == "5":
    fmt.Printf("不及格\n")
default:
    fmt.Printf("差\n")
	}

如果需要执行多个case语句(即多个条件满足时要执行相同的代码),可以使用逗号将多个条件合并在一起。如:case num == "2", num == "3"

6.循环语句(for)

在Go语言中,只有for循环一种循环。在for循环中可以在循环体内使用 break 跳出循环或者使用 continue 来继续下一次循环。

  • break
func main() {  
    for i := 1; i <= 10; i++ {
        if i > 5 {
            break 
        }
        fmt.Printf("%d\n ", i)
    }
    fmt.Printf("over")
}

跳出循环体。break语句用于在结束其正常执行之前突然终止for循环

  • continue
func main() {  
    for i := 1; i <= 10; i++ {
        if i%2 == 0 {
            continue
        }
        fmt.Printf("%d ", i)
    }
}

跳出一次循环。continue语句用于跳过for循环的当前迭代。在continue语句后面的for循环中的所有代码将不会在当前迭代中执行。循环将继续到下一个迭代。

7.数组 Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。 数组元素可以通过索引来读取,索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推。数组的下标取值范围是从0开始,到长度减1。 数组一旦定义后,大小不能更改。

  • 声明、初始化数组

需要指明数组的大小和存储的数据类型。

var slit[10] float32
var slit = [4]float32{10.0, 2.0, 3.1, 50.0}

{}是初始化数组中的元素,[]为初始化规定的数组中最多可有多少元素。初始化数组中 {} 中的元素个数不能大于 [] 中的数字。 如果忽略 [] 中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小:

var slit = []float32{10.0, 2.0, 3.1, 50.0}
  • len函数,可以获得数组的长度。
  • range遍历数组
  • 可以是多维数组
  • 数组是值类型