-
条件判断(
if - else语句)- 基本语法
- 在Go语言中,
if语句用于根据条件执行不同的代码块。基本格式为:
if condition { // 当condition为真时执行的代码块 } else { // 当condition为假时执行的代码块 }- 其中,
condition是一个布尔表达式,例如x > 5、len(str) == 0等。例如:
x := 10 if x > 5 { fmt.Println("x is greater than 5") } else { fmt.Println("x is less than or equal to 5") } - 在Go语言中,
- 多个条件判断(
if - else if - else)- 可以使用
else if来检查多个条件。格式如下:
if condition1 { // 当condition1为真时执行的代码块 } else if condition2 { // 当condition2为真时执行的代码块 } else { // 当所有条件都为假时执行的代码块 }- 例如,判断一个数的正负性:
x := -3 if x > 0 { fmt.Println("x is positive") } else if x < 0 { fmt.Println("x is negative") } else { fmt.Println("x is zero") } - 可以使用
- 在
if语句中声明变量- 可以在
if语句的条件部分声明变量,这个变量的作用域仅限于if语句块及其相关的else if和else块。例如:
if y := 2 * x; y > 10 { fmt.Println("y is greater than 10") } else { fmt.Println("y is less than or equal to 10") } // 注意:这里y的作用域仅限于这个if - else语句块,在外部无法访问y - 可以在
- 基本语法
-
for循环- 基本
for循环- 基本格式为
for init; condition; post { // 循环体 }。其中,init是初始化语句,通常用于初始化循环变量;condition是循环条件,只要这个条件为真,循环就会继续;post是每次循环结束后执行的语句,通常用于更新循环变量。例如:
for i := 0; i < 5; i++ { fmt.Println(i) }- 这个循环会打印出0到4,首先
i被初始化为0,然后检查i < 5是否成立,如果成立则执行循环体(打印i),最后执行i++更新循环变量,再次检查循环条件,直到i < 5不成立为止。
- 基本格式为
- 省略部分的
for循环- 可以省略
init、condition或post部分。如果省略condition部分,循环会一直执行,除非在循环体内部使用break语句跳出循环。例如,下面是一个无限循环:
for { // 无限循环体内容 break // 如果没有break,这将是一个无限循环 }- 也可以只写
condition部分,这种形式类似于其他语言中的while循环。例如:
i := 0 for i < 5 { fmt.Println(i) i++ } - 可以省略
for - range循环(用于遍历数据结构)- 用于遍历数组、切片、字符串、
map等数据结构。例如,遍历一个切片:
slice := []int{1, 2, 3, 4, 5} for index, value := range slice { fmt.Printf("Index: %d, Value: %d\n", index, value) }- 当遍历字符串时,
index是字符的索引(字节索引,对于UTF - 8编码的多字节字符需要注意),value是字符(字节值)。例如:
str := "Hello" for index, char := range str { fmt.Printf("Index: %d, Char: %c\n", index, char) }- 当遍历
map时,index是键,value是值,不过map的遍历顺序是不确定的。例如:
m := map[string]int{"a": 1, "b": 2} for key, value := range m { fmt.Printf("Key: %s, Value: %d\n", key, value) }- 用于遍历数组、切片、字符串、
- 基本